Voting (PHP + JavaScript)
Klaus
- php
Hallo,
ich bin derzeit etwas am verzweifeln, benutze folgendes Script:
http://www.fyneworks.com/jquery/star-rating/#tab-Testing
Soweit läuft es auch schon! Mein PHP Code sieht derzeit so aus:
<?php
$_arg = round($resultA["Abe_fruehstuecksauswahl"],1);
for($i=1;$i<=5;$i++){
echo '<input name="be_fruehstuecksauswahl" type="radio" class="star"'.($_arg == $i?' value="'.$i.'" checked="checked" readonly="readonly"':NULL).' disabled="disabled"/>'.chr(10);
}
?>
dieser geht, solange ich gerade Zahlen habe also z.B. 1 Stern! Aber ich kann auch 3,2 z.B. haben und dann geht das Script leider nicht. Laut der Anleitung von:
http://www.fyneworks.com/jquery/star-rating/#tab-Testing
müsst es aber mit {split:10} gehen. Nur die Frage ist, wie muss ich dann mein for Schleife anpassen, dass es auch wieder geht und genau an diesem hänge ich gerade.
In $_arg steht derzeit z.B. 3,6
Hoffe mir kann einer weiterhelfen!
müsst es aber mit {split:10} gehen. Nur die Frage ist, wie muss ich dann mein for Schleife anpassen, dass es auch wieder geht und genau an diesem hänge ich gerade.
Was macht denn:
for($i=1;$i<=5;$i++){
:-)
fred
Hallo,
for($i=1;$i<=5;$i++){
das hat mir heute Mittag ein Kollege gemacht, damit wollte er Code sparen und meinte, dass man damit eben die einzelnen "<input name=" nicht ständig neu schreiben muss.
Hi,
ich bin derzeit etwas am verzweifeln, benutze folgendes Script:
http://www.fyneworks.com/jquery/star-rating/#tab-Testing
Soweit läuft es auch schon! Mein PHP Code sieht derzeit so aus:
[...]
dieser geht, solange ich gerade Zahlen habe also z.B. 1 Stern!
was willst du denn eigentlich erreichen? Solange du das nicht erklärst, wird dir auch kaum jemand helfen können. Abgesehen davon ist 1 _keine_ gerade Zahl.
In $_arg steht derzeit z.B. 3,6
Ja was denn nun, 3 oder 6?
So long,
Martin
Hallo,
was willst du denn eigentlich erreichen? Solange du das nicht erklärst, wird dir auch kaum jemand helfen können. Abgesehen davon ist 1 _keine_ gerade Zahl.
Ich möchte erreichen, dass er mir auch viertel, halbe usw. Sterne darstellt. Mit dem was ich bis jetzt erreicht habe bekomme ich nur die vollen Sterne angezeigt sprich wenn es 1 2 3 usw. ist NICHT aber wenn es 3,6 z.B. ist.
Ja was denn nun, 3 oder 6?
Weder 3 noch 6 sondern wie ich es geschrieben habe 3,6! Auf der Seite ist das so zu sehen" 3,6 von 5,0!
Hi,
was willst du denn eigentlich erreichen? Solange du das nicht erklärst, wird dir auch kaum jemand helfen können. Abgesehen davon ist 1 _keine_ gerade Zahl.
Ich möchte erreichen, dass er mir auch viertel, halbe usw. Sterne darstellt.
ah, da kommen wir der Sache schon näher. Dann ist natürlich eine for-Schleife, die ja per se nur ganzzahlige Schleifendurchläufe kennt, völlig ungeeignet. Da wäre es vielleicht schlauer, wenn du grundsätzlich alle 5 Sterne anzeigst, aber die Breite des umgebenden Elements per CSS auf entsprechende Bruchteile begrenzt.
Ja was denn nun, 3 oder 6?
Weder 3 noch 6 sondern wie ich es geschrieben habe 3,6!
Ach so, du meinst 3.6? Dann sag das doch bitte auch. Das Komma ist üblicherweise ein Trennzeichen zwischen zwei oder mehr Werten.
Ciao,
Martin
Hallo,
Da wäre es vielleicht schlauer, wenn du grundsätzlich alle 5 Sterne anzeigst, aber die Breite des umgebenden Elements per CSS auf entsprechende Bruchteile begrenzt.
Hmm, wie meinst du das? Wenn ich alle Sterne habe, dann werden auch alle 5 Sterne angezeigt, ist nur eine Grafik, die ich hoch oder runter schiebe also ein Sprite. Wie müsste ich das dann umsetzten wenn ich es so mache, wie du es gerade geschrieben hast?
Hallo Klaus,
die fünf Sterne haben z.B. eine Breite von 50 px und bei einer Bewertung von 3.6 erhält das DIV, in dem die Sterne untergebracht sind, eine Breite von 36 px.
Gruß, Jürgen
Hallo,
ich wollte euch nur kurz meine Lösung zeigen mit der es geht:
JavaScript Teil
<script type="text/javascript">
jQuery(function(){ jQuery('input[@type=radio].star').rating(); });
jQuery.extend(jQuery.fn.rating, { options: {
cancel: 'Cancel Rating',
cancelValue: '',
split: 10,
} });
</script>
Mein PHP Code:
<?php
$Ergebnis_aus_Voting = "3.6";
$Voting_Ergebnis = $Ergebnis_aus_Voting;
$Punkt_finden = strrpos($Voting_Ergebnis, '.');
$Voting_Ergebnis = substr_replace($Voting_Ergebnis, '', $Punkt_finden, 1);
echo $Voting_Ergebnis;
?>
<?php
$Voting_Ergebnis;
for($i=1;$i<=50;$i++){
echo '<input class="star {split:10}" type="radio" name="test"'.($Voting_Ergebnis == $i?' value="'.$i.'" checked="checked"':NULL).' disabled="disabled"/>'.chr(10);
}
?>
Das ganze basiert auf dieses Script von:
http://www.fyneworks.com/jquery/star-rating/#tab-Testing
Gruß
Klaus