Bewertung ohne Browser-Reload speichern?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
beschreibung
bewertung
code
datei
einfaches beispiel
eintrag
entsprechenden info
ergebnis
folgende form
folgendes schreiben
hintergrund
liste
post
punkt
schieben
span
speichern
tag
target
tip
-
Hallo
Ich habe eine tag/liste">Liste mit Links zu Webseiten
User sollen diese Links (Webseiten) bewerten können (1 bis 10 Punkte geben)
das Speichern der Votes (und Re-Vote Sperre) ist nicht das Problem
bzw. das mache ich serverseitig mit MySQL
aber wie kann ich die Abgabe einer Bewertung speichern
ohne dass die ganze Seite neu Laden muss ?
ich habe gehört sowas soll mit jQuery funktionieren, aber wie ?
... Bei Klick auf Vote-Button (bzw. Vote-Link) diesen Vote speichern ohne Browser-Reload ?!?
jemand einen Tipp wie ich das arn angehen soll ? ... hab noch keine Erfahrung mit jQuery
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
dafür brauchst du nicht unbedingt jQuery, da reicht auch schon das folgende JS:
var voteImHintergrund = function(voteId){ if(!voteId.nodeName){ voteId = document.getElementById(voteId); } var ifr, a = voteId.getElementsByTagName('a'), i = a.length; if(!(ifr = document.getElementById('hintergrundfenster'))){ ifr = document.createElement('iframe'); } ifr.id = ifr.name = 'hintergrundfenster'; document.body.appendChild(ifr); for(;i--;){ a[i].target = 'hintergrundfenster'; } };
Das setzt allerdings vorraus, dass deine Votescripts eine Folgende Form haben (in CSS lässt sich das gut beschreiben):
Und als HTML kann sowas so aussehen:#deineVoteId a
<p id="deineVoteId"> <a href="?v=1">1</a> […] <a href="?v=10">10</a> </p>
Da ich dein HTMl nicht kenne kann ich da nur vermuten.
Um das ganze jetzt in den Hintergrund zu schieben brauchst du nur noch am Ende der Seite folgendes schreiben:
Oder, wenn du mehrere Votebalken hast:<script type="text/javascript"> voteImHintergrund('deineVoteId'); </script>
<script type="text/javascript"> voteImHintergrund('deineErsteVoteId'); voteImHintergrund('deineZweiteVoteId'); voteImHintergrund('deineDritteVoteId'); </script>
Wie gesehen relativ simpel…
Mit freundlichen Grüßen -
hmm
etwas abschreckend finde ich document.createElement('iframe');
wer will schon iFrames ?!
lieber wäre mir ein POST oder GET (zu einer PHP-Datei) um das Ergebnis zu speichern
aber auch das bekomme ich nicht hin
mal ohne die 10 Punkte, ganz einfaches Beispiel
<div id="eintrag1"> <p>Screenshot, Titel, Link und Beschreibung zum Eintrag 1 .... </p> <div class="vote" onClick="abstimmung();"> VOTE: - <span class="plus">dafür</span> - <span class="infoplus"><?php echo $stimmen_plus; ?></span> - <span class="minus">dagegen</span> - <span class="infoplus"><?php echo $stimmen_minus; ?></span> </div> </div> <div id="eintrag2"> <p>Screenshot, Titel, Link und Beschreibung zum Eintrag 2 .... </p> <div class="vote" onClick="abstimmung();"> VOTE: - <span class="plus">dafür</span> - <span class="infoplus"><?php echo $stimmen_plus; ?></span> - <span class="minus">dagegen</span> - <span class="infoplus"><?php echo $stimmen_minus; ?></span> </div> </div> <div id="eintrag3"> <p>Screenshot, Titel, Link und Beschreibung zum Eintrag 3 .... </p> <div class="vote" onClick="abstimmung();"> VOTE: - <span class="plus">dafür</span> - <span class="infoplus"><?php echo $stimmen_plus; ?></span> - <span class="minus">dagegen</span> - <span class="infoplus"><?php echo $stimmen_minus; ?></span> </div> </div>
wie sieht dann JavaScript aus, um bei Klick auf ein "dafür" oder "dagegen" in einem Eintrag
diese Werte an eine PHP-Datei (im Hintergrund) zu senden (egal ob POST oder GET)
muss vielleicht das onClick jeweils in den <span> Tag rein ?
und wie schreibe ich das Ergebnis dann in den entsprechenden Info-Span ? ... innerHTML ?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage