Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wysłanie wartości GET'em działa, AJAX'em nie zawsze
kilab
post
Post #1





Grupa: Zarejestrowani
Postów: 180
Pomógł: 19
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


Witam, na wstępie wspomnę tylko, że z AJAX'em, jak i z samym JS nie mam wiele do czynienia, kiedy muszę to się douczam po trochu (IMG:style_emoticons/default/smile.gif)

Tym razem mam problem z przesłaniem wartości za pomocą AJAX'a. Zrobiłem ocenianie komentarzy (+/-), w bazie zapisuje id komentarza, id uzytkownika i jego ocenę. Jeśli wywołuję adres ręcznie, tj. strona.pl/komentarze/$ocena/$id_komentarza, np. strona.pl/komentarze/plus/5 to prawidłowo zapisuje do bazy. Zarówno w przypadku dania plusa, jak i minusa. Przy pomocy AJAX'a działa tylko minus jeśli nie ma jeszcze żadnej oceny dla danego komentarza. Klikanie w plus powoduje tylko zwiększanie się wartości przy ocenie komentarza na stronie ale w bazie nic się nie dodaje i po odświeżeniu strony pokazuje znów 0. Jeśli kliknę najpierw minus, czyli będzie już ocena dla tego komentarza, to i plus zaczyna działać. Nie mam pojęcia w czym jest problem (IMG:style_emoticons/default/wstydnis.gif)

Stworzyłem do głosowania prostą funkcję, którą zamieszczam poniżej. Proszę nie zwracać uwagi na sposób wyświetlania oceny po kliknięciu bo na razie to rozwiązanie tymczasowe (IMG:style_emoticons/default/smile.gif) Zastanawiam się nad czymś innym.
[JAVASCRIPT] pobierz, plaintext
  1. function glosuj(id, vote){
  2. var xmlhttp;
  3. var ocena;
  4.  
  5. if (window.XMLHttpRequest){
  6. xmlhttp=new XMLHttpRequest();
  7. }else if (window.ActiveXObject){
  8. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  9. }else{
  10. alert("Twoja przeglądarka nie wspiera technologii XMLHTTP!");
  11. }
  12.  
  13.  
  14. xmlhttp.onreadystatechange=function(){
  15. if(xmlhttp.readyState==4){
  16. ocena = document.getElementById('ocena_'+id).innerHTML;
  17. ocena = parseFloat(ocena);
  18.  
  19. if(vote == 'plus')
  20. ocena = ocena+1;
  21. else if(vote == 'minus')
  22. ocena = ocena-1;
  23.  
  24. if(xmlhttp.responseText == 'true')
  25. document.getElementById('ocena_'+id).innerHTML = ocena;
  26. }
  27. }
  28.  
  29.  
  30. xmlhttp.open('GET', 'komentarz/'+vote+'/'+id, false);
  31. xmlhttp.send(null);
  32.  
  33. }
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 14:27