function checkAuth() { if (document.forms['wyslijf'].login.value == ''){ document.getElementById('badlogin').innerHTML = 'Podaj login.'; return false; } var succeed = false; var xmlhttp; if (window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject){ xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } else alert('AJAX Ci nie działa!'); xmlhttp.onreadystatechange = function() { document.getElementById('badlogin').innerHTML = ''; if (xmlhttp.readyState == 4 && xmlhttp.status == 200){ if (xmlhttp.responseText == '2'){ document.getElementById('badlogin').innerHTML = ''; succeed=true; } else if (xmlhttp.responseText == '1'){ document.getElementById('badlogin').innerHTML = 'Istnieje.'; } else alert("n/:Nieobsługiwana informacja zwrotna:\n"+xmlhttp.responseText); } } var url = 'checkuserexists.php'; var params = 'login='+document.forms['wyslijf'].login.value; xmlhttp.open('POST',url); xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xmlhttp.send(params); alert(succeed); return succeed; }
specjalnie zrobilem alert succeed żeby zobaczyć co zwraca i za każdym razem zwraca false. dlaczego tak się dzieje i czy można cos z tym zrobić?
Pomóżcie
Edit: teraz przeczytałem, że ajax nie zatrzymuje sie na wyniku tylko leci dalej, troszke mnie to zaniepokoiło bo potrzebuje ten true do przycisku który sprawdza mi nie tylko login ale także hasła, email, płeć, ilość zaznaczonych opcji w różnych formularzach.
Wszystko inne jest sprawdzane w Javascript i za każdym razem zwracają odpowiednie błędy i true bądź fasle, a pod przyciskiem jest
if (!wystepuja_bledy) formularz.submit(); else alert(bledy);
chcialbym tego ajaxa pod to no ale chyba nie da się
