Witam serdecznie forumowiczów;

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
  1. <script type="text/javascript" src="script/advajax.js"></script>
  2. <script type="text/javascript">
  3. function $(id){
  4. return document.getElementById(id);
  5. }
  6. function start(){
  7. advAJAX.assign($("ocenianie"), {
  8. onLoading : function(obj) { $("status").innerHTML= "Rzucam kośćmi..."; },
  9. onSuccess : function(obj) { $("status").innerHTML = "sukces"; },
  10. onError : function(obj) { $("status").innerHTML= "error"; }}
  11. );
  12. }
  13. </head>
  14. <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:

  1. <form action="<?php echo $PHP_SELF; ?>" method="post" id="ocenianie">
  2. //ocenianie wina
  3. for ($i=1;$i<11;$i++) {
  4. echo '<input type="submit" name="ocena" value="'.$i.'">';
  5.  
  6. if ($_POST['ocena'] == $i) {
  7.  
  8. if ($wina['ocena_ip'] != $_SERVER['REMOTE_ADDR']) {
  9. mysql_query("UPDATE wina SET ocena_ip = '$_SERVER[REMOTE_ADDR]' WHERE...) or die(mysql_error());
  10. }
  11.  
  12. }
  13. }
  14. </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.