Zacząłem bawić się z Ajaxem i napotkałem na problem, którego nie potrafię obejść.
W związku z tym proszę o pomoc.
Pod IE działa jak najbardziej prawidłowo, tzn. na submit sprawdza i jeśli login lub email sie powtarza to wyskakuje alert i border pola robi się czerwony.
Pod FF na submit się po prostu submituje (przechodzi do register3.php), a ewentualne błędy pokazuje dopiero po wciśnięciu "Wstecz".
Cały przykład z artykuły nospor'a

Kod:
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <form action="register3.php" method="POST" id="registerForm" name="registerForm"> <table> </form> </table> </body> </html>
Register.js:
function $(id) { return document.getElementById(id); } function sprawdz_dane() { var login = $("login").value; var email = $("email").value; var zapytanie = "register2.php?login="+login+"&email="+email; advAJAX.get({ url : zapytanie, onSuccess : function(obj) { if(obj.responseText == "login") { alert("Użytkownik o takim loginie jest już w bazie danych"); $("login").style.border='1px solid red'; $("email").style.border='1px solid #7F9DB9'; } if(obj.responseText == "email") { alert("Ten e-mail isntieje już w bazie danych"); $("login").style.border='1px solid #7F9DB9'; $("email").style.border='1px solid red'; } if(obj.responseText == "OK") $("registerForm").submit(); } }); }
Register2.php:
<? $dbhost = 'localhost'; $dblogin = 'root'; $dbhaslo = ''; $db = 'testowa'; $query = "SELECT count(*)AS Ile FROM test1 WHERE Login='".$login."';"; if($row['Ile']) else { $query = "SELECT count(*)AS Ile FROM test1 WHERE e_mail='$email';"; if($row['Ile']) } ?>
Wiadomo, że register3.php to plik dowolny do którego trafiają dane po przebrnięciu przez Ajaxa, więc nie będę go tu umieszczał.
Nospor - do tablicy Cię wywołuję!!

