
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

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

function glosuj(id, vote){ var xmlhttp; var ocena; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); }else if (window.ActiveXObject){ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }else{ alert("Twoja przeglądarka nie wspiera technologii XMLHTTP!"); } xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4){ ocena = document.getElementById('ocena_'+id).innerHTML; ocena = parseFloat(ocena); if(vote == 'plus') ocena = ocena+1; else if(vote == 'minus') ocena = ocena-1; if(xmlhttp.responseText == 'true') document.getElementById('ocena_'+id).innerHTML = ocena; } } xmlhttp.open('GET', 'komentarz/'+vote+'/'+id, false); xmlhttp.send(null); }