Dziś postanowiłem zacząć swoją przygodę z Ajaxem, nie trzeba mi wiele, ale juz na samym poczatku mam dosc spore problemy. Opisze je ponizej.
Posiadam swoj system oceniania, skladajacy sie z kliku buttonow z odpowiednia wartoscia Value. Za pomoca php zapisuje sobie wszystko elegancko w bazie (ip oceniajacego rowniez), pozniej sprawdzam, ip oceniajacego i jezeli jest inny niz ten zapisany w bazie to uzytkownik moze oceniac. Jezeli jest ten sam otrzymuje on odpowiedni komunikat.
I ok, w samy php sobie poradzilem, jednak Ajax do dla mnie cos nowego i troszke licze na Wasza pomoc.
Poki co mam kod:
index.php
<head> <script type="text/javascript"> function $(id){ return document.getElementById(id); } function start(){ advAJAX.assign($("ocenianie"), { onLoading : function(obj) { $("status").innerHTML= "Rzucam kośćmi..."; }, onSuccess : function(obj) { $("status").innerHTML = "sukces"; }, onError : function(obj) { $("status").innerHTML= "error"; }} ); } </script> </head> <body onload="start();">
no i pliczek z formularzem, ktory wykonuje sie sam w sobie dzieki PHP_SELF.
I zauwazylem taka rzecz, ze gdy jest php_self to Ajax nie pokazuje mi komunikatow, a jezeli dam zapis do bazy w oddzielnym pliku to wowczas komunikaty zaczynaja sie pojawiac.
Dlaczego tak jest ? Czy musze do kazdego z formularzy dawac oddzielny plik z akcja? Troche dziwne.
I drugi problem ktory napotkalem i nie wiem prawde mowiac jak sobie z nim poradzic to wlasnie te sprawdzanie IP oceniajacego.
Oto fragment pliku oceny:
//ocenianie wina for ($i=1;$i<11;$i++) { echo '<input type="submit" name="ocena" value="'.$i.'">'; if ($_POST['ocena'] == $i) { if ($wina['ocena_ip'] != $_SERVER['REMOTE_ADDR']) { mysql_query("UPDATE wina SET ocena_ip = '$_SERVER[REMOTE_ADDR]' WHERE...) or die(mysql_error()); } } } </form>
Jak zrobic, aby pojawiajace sie Ajaxowe komunikaty byly adekwatne do akcji, tzn. jezeli ktos pierwszy raz ocenia to otrzymuje sukces, a jezeli po raz kolejny do dostaje komunikat errorowy ?
Siedze nad tym juz 4 godzine i troszke jestem podlamany rezultatami.
Pozdrawiam i po cichu licze na Wasza pomoc.