Avatar billede ewax Nybegynder
15. juni 2010 - 12:15 Der er 6 kommentarer og
1 løsning

PHP AJAX - stjerne rating system

Hej eksperter, nu har jeg i flere dage prøvet at lave et lignende system til dette: http://orkans-tmp.22web.net/star_rating/demos/demo6c.php?b38

Jeg kan sagtens lave et normalt php/html afstemningssystem, men nu vil jeg ha et lidt mere fancy.

Det skal køre med postback og fadefunktionerne som eksemplet.


jeg henter mine ratingdata ud fra følgende tabel

id | item_id | rate | ip


Når man kommer til en afstemning skal den gemme følgende item_id som er id på hvad det en må være man stemmer på.

Rate som er stemmen 1-5.

IP som er brugerens ip adresse, da der ikke er noget brugersystem.

Når brugeren har stemt låser den afstemningen med resultatet vist


Er der nogen herinde der har sådan et script færdiggjort? eller er frisk på at hjælpe? :)
Avatar billede Rebjorn Nybegynder
15. juni 2010 - 12:20 #1
Jeg er frisk på at hjælpe dig, det lærer du nok mest af. Men du bliver nødt til at give noget af det kode du allerede har skrevet.

Har du prøvet dig frem med noget JavaScript allerede, eller sidder du fast i dit php script?
Avatar billede ewax Nybegynder
15. juni 2010 - 13:39 #2
Jeg har ikke noget ordenligt at give dig, har brugt eksemplet der og prøvet at modificere det, hvilket resulterede i nogle underlige fejl jeg ikke kunne få rettet

php delen har jeg styr på, det er mest javascriptet og den måde det kommunikerer med php på :)

demoen der er vist i mit første indlæg kan hentes her:
http://orkans-tmp.22web.net/star_rating/demos/star_rating_widget-demos.zip

Her er lidt mere info:
http://orkans-tmp.22web.net/star_rating/index.html
Avatar billede Slettet bruger
16. juni 2010 - 14:55 #3
jeg har et godt råd, lad værre med at downloade det, fordi så har du ikke lært noget som helst

du skal bare lave
            <form method="post">
<input type="submit" name="rate1" value="1"/>
<input type="submit" name="rate2" value="2"/>
<input type="submit" name="rate3" value="3"/>
<input type="submit" name="rate4" value="4"/>
<input type="submit" name="rate5" value="5"/>
</form>
så hvis personen trykker på en af inputetne så er det php
<?php $id = $_GET['mid'];
mysql_connect("**", "**", "**")
or die(mysql_error());
mysql_select_db("**") or die(mysql_error());
                if (isset($_POST['rate1'])) {
            $result = mysql_query("UPDATE ratings SET `totalvalue` =  `totalvalue` + 1 WHERE `hvor` = '$id'");
            $result = mysql_query("UPDATE ratings SET `totalratings` =  `totalratings` + 1 WHERE `hvor` = '$id'");
            }
else{
    }
?>
og sådan laver du til alle dine rates, altså names i input.
så echo du det ved at sige
$totalvalue = $row['totalvalue'];
    $allerates = $row['totalratings'];
    $rates = $totalvalue / $allerates;
og så echo $rates
Avatar billede heinzdmx Nybegynder
17. juni 2010 - 19:47 #4
Det vil jo ikke give de effekter han taler om.

Omkring det lidt mere fancy. Så vil det være nemmest hvis du vil kode det i JQuery

Faktisk er det også brugt i dette eksempel.

Hvis du siger du kan php delen, så er det jo bare at kigge på HTML delen. Se JQUERY scriptet her

<script type="text/javascript">
$(function(){
$("#rat").children().not(":radio").hide();
           
// Create stars
$("#rat").stars({
cancelShow: false,
callback: function(ui, type, value)
{
$("#loader").show();
$("#rat").fadeOut(function() //Note: IE sucks when fading 32bit PNG!
{
$.post("demo6.php", {rate: value}, function(db)
{
ui.select(Math.round(db.avg));
$("#avg").text(db.avg);
$("#votes").text(db.votes);
$("#rat").fadeIn();
$("#loader").fadeOut();
                    }, "json");
                  });
                }
                });
    });
</script>

For at du kan lave det så skal du være inde i jquery. Find det på nettet, der er masser af guides til det
Avatar billede ewax Nybegynder
18. juni 2010 - 10:55 #5
Jeg prøver at sætte mig mere ind i jquery, kan se det blir nødvendigt.. :)
Avatar billede ewax Nybegynder
04. november 2010 - 15:40 #6
Jeg har fået løst det via et system der hedder simpleratings, kan se profilen der har svaret er nedlagt så tillader mig at trække points tilbage
Avatar billede heinzdmx Nybegynder
04. november 2010 - 16:11 #7
Men hvorfor så ikke spørge os andre om at lægge et svar....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester