Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] głosowanie
Forum PHP.pl > Forum > XML, AJAX
istrd
Witam.
Mam taki problem mam skrypt głosowania, napisany w jquery jednak coś jest zle ponieważ źle liczą się kliknięcia. Po pierwszym kliknięciu nie zwraca wyniku (ale wykonuje alert "dzięki za głos" po drugim kliknięciu jest już dobrze wyswietla 2 pozniej za trzecim jest 5 dalej za czwartym 9 a dalej to jak popadnie. PHP działa prawidłowo bo wykonując to po za skryptem podając w przeglądarce np. glosuj.php?glos=pozytywny&id=10 wszystko liczy dobrze.

  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
  2. <script type="text/javascript">
  3. {literal}
  4. function GlosPozytywny(id)
  5. {
  6. alert("Dzięki za głos na id :"+id+"");
  7. $('.glos_pozytywny').click(
  8. function()
  9. {
  10.  
  11. $.getJSON('glosuj.php',{"glos":("pozytywny"),"id":id},
  12. function(data)
  13. {
  14. $(".wynik").html("Aktualny wynik glosowania to:"+data[0].Dane);
  15.  
  16. });
  17.  
  18. }
  19. );
  20. }
  21. function GlosNegatywny(id)
  22. {
  23. alert("Dzięki za głos na id :"+id+"");
  24. $(".glos_negatywny").click(
  25. function()
  26. {
  27.  
  28. $.getJSON('glosuj.php', {"glos":("negatywny"),"id":(id)},
  29. function(data)
  30. {
  31. $(".wynik").html("Aktualny wynik glosowania to:"+data[0].Dane);
  32. });
  33.  
  34. }
  35. );
  36. }
  37. {/literal}
  38. </script>
  39. <input type="submit" name="glos_pozytywny" value="+" class="glos_pozytywny" OnClick="GlosPozytywny({$dane.id});">
  40.  
melkorm
wywal to:
Kod
$(".glos_negatywny").click(


Ogólnie co Ty teraz robisz to:
1. User klika w głos, aktywuje się funkcja która przypisuje zdarzenie dla tyc elemetów z danym ID.
2. User klika znowu, znowu przypisujesz zdarzenie, wykonuje się pierwsze zdarzenia i jak klika znów to wykonują się 2 zdarzenia itd ... .

Wywal przypisywanie $().click lub zrób to przez element.click, bo najwidoczniej nie rozumiesz koncepcji jak to działa.
everth
Masz wielokrotny bind do kliknięcia. Usuń z twoich funkcji bindowanie jQuery ( czyli tutaj linia 7 i 24) a zostaw samo wykonanie ajaxa.

@UP
Spóźniony.
istrd
Dzięki za pomoc. Słabo znam Jquery i JS ale juz rozumiem w czym był problem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.