Für ein aktuelles Projekt brauchte ich so eine hübsche Sternchenbewertung. Meine Wahl fiel auf Komodo Medias CSS Lösung, da diese einfach in den meisten Browsern funktioniert und kein Javascript benötigt. Aber mit Javascript ist eben nun mal alles viel schöner und da das Projekt mit jQuery produziert wird, stiess ich auf ein Plugin das ähnlich aussah, aber eben dynamisch generiert wurde. Tolle Idee! Leider nicht so tolle Browserunterstützung. Im IE6 verschwanden die Grafiken. Schade.

Ich habe daher auf Basis des Skripts mein geliebtes Komodo-system eingebaut und die Funktion noch ein wenig erweitert und zum Teil verbessert. Es ist möglich unendlich viele Sterne mit der Komodo Methode zu haben (anstatt nur 5 mit statischen CSS Klassen). Mein Plugin rechnet die nötigen Werte selber aus.

Natürlich sind die sehr nützlichen Optionen des Vorgängers geblieben. Man kann festlegen wieviele Sterne, wieviele vorausgewählt sein sollen und an welche Adresse das Ergebnis des Klicks gesandt werden. Ich habe allerdings eine Callback Funktion eingebaut die das ebenfalls dynamisch erstellte Ergebnis-Element mit dem HTML der XHR Response füllt. Click->POST->Result.

Ich habe eine Demo-Seite erstellt wo man das 5K grosse, beziehungsweise 2K gepackte Skript samt CSS und Beispiel runterladen kann.
http://www.m3nt0r.de/devel/raterDemo/

19 Kommentare zu “jQuery Ajax Star Rating”

  1. 1 Jan Says:
    mhhh also ich wäre wirklich daran interessiert, meine ganzen kinofilme schnell und einfach mit nem sternchen rating zu versehen.
    aber ich bin kein techie. kannst daraus ein wp-plugin basteln, dass leute wie ich benutzen können ;-)

    oder ne idiotensichere anleitung basteln ?

  2. 2 Hans Says:
    Hi, it seems you have downloaded ColourFull Wall. Did you find it a good theme? If you need help or advice with anything concerning implementing it on your blog, I would be glad to help.

    It would be great to have you among our worldwide network of bloggers at UBSquare

  3. 3 m3nt0r Says:
    Hans: Thank you for your comment. Yes, i have downloaded and tried your theme. It is really great, but on second sight i found it hard to navigate. The pieces are well designed, but they need to be rearranged in my opinion. Or let me put it like this: The layout is a little challenging for the average visitor. On my scale your theme rates 8/10.

    Jan: Ja, das würde gehen. Allerdings gibt es ein solches Plugin bereits. Es benutzt zwar einen anderen star-rater, aber ist eigens für wordpress entwickelt. Mein script richtet sich eher an die Entwickler solcher plugins und da es schon eines gibt, werde ich keinen zweiten Versuch unternehmen. Das überlass ich lieber jemand anderem :) Schau einfach mal bei wp-plugins.net .. Post Star Rating is recht gut.

  4. 4 Hans Says:
    thanks indeed for your sincere opinion. Hey why wouldn’t us do it like this, if you like it really, I can modify it custom made to your taste with the navigational structure you would like and send you the finished product. How about that? It’s free of course lol :P

    Infact I make custom theme for people too tailored to their need and taste..for Free..it’s just like my hobby.

    Do tell me if that sounds interesting for you…thanks indeed for your income.

  5. 5 Taurin Says:
    Servus sieht ja cool aus.

    Aber kannst mal genauer beschreiben, wie und wo man was hinlädt?!

    THX

  6. 6 pex Says:
    Hi, what does actually the jquery.rater.packed.js do?
  7. 7 m3nt0r Says:
    @pex: That is the compressed version of the script without comments and so on. Use that file for production to keep the download small.
  8. 8 Thomas Says:
    Hallo,

    wie speichert man denn die Bewertung so, dass man das dann auf einer Website einsetzen kann. Gibt es dazu auch irgendwo eine Anleitung?

  9. 9 Kjell Bublitz Says:
    hmmm.. die frage ist zu allgemein. Das Script befasst sich ausschliesslich mit dem Frontend. Das Backend kann ja in beliebiger Sprache sein (php, java, asp), weshalb es dazu keine simple Antwort gibt.

    Auf jeden Falls solltest du dich mit dem Thema “Ajax” beschäftigen. Dort findest du dann genügend Beispiele wie man von Javascript Daten an einen Server sendet. Dann bau dein lauffähiges Ergebnis um, so dass es das Rater Script benutzt und du bist auf dem besten Wege es herrauszufinden. Zumindest hast du dann das Grundprinzip erlernt.

    Sorry dass ich dir kein Rezept geben kann.

  10. 10 Wijng Says:
    Hallo,

    großartiges Plugin! Mir hat aber die Möglichkeit gefehlt, auch eine Callback - function für mehr Flexibilität anzugeben - vielleicht wäre das eine sinnvolle Ergänzung:

    $('#inlineX').rater('URL', {style: 'inline', curvalue:2, callback: function(response, container){
    alert('ok')
    }});

    und im script

    jQuery.post(container.url, { "rating": raterValue }, function(response){
    if(settings.callback != null) {
    settings.callback(response, container);
    } else {
    container.children('.star-rating-result').html(response)
    }
    });

  11. 11 Kjell Bublitz Says:
    Jup, ich habs mal auf GitHub gehauen. Werde es dort dann weiterführen. Das Plugin ist ja nicht mehr das jüngste.
  12. 12 naden Says:
    Gutes plugin, habe noch einige Ergänzungen vorgenommen:

    Zusätzliche Paramater:
    count : 0 // anzahl der Votes
    hasrated : false // flag, ob user gevoted hat
    label : ‘ø %c / %t, %v Votes’ // zeigt das ganze nochmal in zahlen

    wenn hasrated == true, span, nicht a
    if( settings.hasrated ) {
    listitems+=’i’
    }

    und das label
    if( settings.label ) {
    var label = settings.label.replace(/%c/,settings.curvalue).replace(/%t/,settings.maxvalue).replace(/%v/,settings.count);
    container.append(” + label + ”);
    }

    so long

  13. 13 lindi Says:
    Danke schön! Ich kämpfe noch mit der Installation…
  14. 14 ken Says:
    when submit complete, i want disable a hover star, and don’t rate again ?
    please
  15. 15 Daniel Says:
    Eine Einbauanleitung waere auf jeden fall schoen, oder eine demo.html im jquery.rater-1.0.zip wo man sich das mal am lebenden objekt ansehen koennte :)
  16. 16 Fabian Says:
    Super Plugin!

    Kann man das Plugin eigentlich auch zurücksetzen?

    Wenn ich ein Bild dynamisch anzeigen lasse und abstimme, anschließend ein neues Bild anzeige (ohne die ganze Seite neu zu laden), sollte auch das Voting von vorn beginnen…

    Viele Grüße!

  17. 17 chrishe Says:
    Ich werde mal versuchen dein Script so anzupassen, das auch die Votes gespeichert werden, klasse das ich deinen Ansatz gefunden habe. Sieht wirklich frisch aus. Was ich schade finde, und zu dem ich noch keinen Ansatz weiß, wie bekomme ich “halbe Sterne” hin, also zb curvalue:2.5 -> kannst du mir da einen kleinen Denkanstoß geben?
  18. 18 Spielen Says:
    Ich bin mal Spiele Spielen auf
    http://www.ichwillspielen.com
    Viele Grüße
    lien
  19. 19 Lina Says:
    hello,
    sorry I can’t speak German ^^;
    I would like to use this script, but I don’t understand how it works, I tried to put the files (jquery.rater.js, jquery.rater.packed.js, rater.css, ratingsdemo.php, star.gif, and star_small.gif) in the same folder on my website, then I made a test page. I this page I had :

    But I always have an error :
    Parse error: syntax error, unexpected ‘(’, expecting T_VARIABLE or ‘$’ in /home/users/l/lina/www/rater/test.php on line 38

    I don’t really know how I should use this script, could you please help me ?
    Thanks in advance ^_^!


Trackbacks/Pingbacks

Noch keine Trackbacks/Pingbacks von anderen Blogs

Diesen Eintrag kommentieren