In de onderstaande code wordt gecheckt of de opgegeven gebruikersnaam al bestaat in de database. switch.php geeft de waarde "unallowed" terug als die al bestaat.
Op regel 43 wordt even een pauze ingelast om de ajax request uit te voeren.
Het gekke is alleen dat de alert op regel 56 zegt dat namecheck 'undefined' is en zodra ik op "ok" klik dan is die op regel 58 wel weer gedefinieerd, de if statement klopt dan ineens.
Als ik de alert op regel 56 weghaal klopt regel 58 niet meer. En als ik de pauze op regel 67 op 10 seconden zet blijft het undefined op regel 62.
Wat doet die alert nou voor iets magisch waardoor de global namecheck (regel 4) wel wordt gevuld?
Op regel 43 wordt even een pauze ingelast om de ajax request uit te voeren.
Het gekke is alleen dat de alert op regel 56 zegt dat namecheck 'undefined' is en zodra ik op "ok" klik dan is die op regel 58 wel weer gedefinieerd, de if statement klopt dan ineens.
Als ik de alert op regel 56 weghaal klopt regel 58 niet meer. En als ik de pauze op regel 67 op 10 seconden zet blijft het undefined op regel 62.
Wat doet die alert nou voor iets magisch waardoor de global namecheck (regel 4) wel wordt gevuld?
PHP:
var xmlHttp;
var xmlHttpusernamecheck;
var namecheck;
function register(gebruikersnaam, pw, pw2, voornaam, achternaam)
{
var username=gebruikersnaam;
var password=pw;
var password2=pw2;
var firstname=voornaam;
var lastname=achternaam;
xmlHttp=GetXmlHttpObject()
xmlHttpusernamecheck=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request")
return;
}
if(firstname==''){
error_msg="error";
alert("Voornaam is niet ingevuld.");
}
if(lastname==''){
error_msg="error";
alert("Achternaam is niet ingevuld.");
}
if(password!=password2 || password=="" || password2==""){
error_msg="error";
alert("Wachtwoorden komen niet overeen of zijn niet ingevuld.");
}
if(username==''){
error_msg="error";
alert("Gebruikersnaam is niet ingevuld.");
}else{
usrid=username;
var url="application/controller/switch.php?request=register"+
"&action=usernamecheck"+
"&gebruikersnaam=" + usrid +
"&sid="+Math.random();
xmlHttpusernamecheck.onreadystatechange=stateChangedusercheck
xmlHttpusernamecheck.open("GET",url,true)
xmlHttpusernamecheck.send(null)
}
pausecomp(3500);
alert(namecheck);
if(namecheck=='unallowed'){
error_msg="error";
alert("De gebruikersnaam is al in gebruik.");
}else{
alert(namecheck);//undefined
}
}
function pausecomp(millis)
{
var date = new Date();
var curDate = null;
do {
curDate = new Date();
}
while(curDate-date < millis);
}
function stateChangedusercheck()
{
if (xmlHttpusernamecheck.readyState==4 || xmlHttpusernamecheck.readyState=="complete"){
namecheck=xmlHttpusernamecheck.responseText;
}
}
function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xmlHttp;
}
Laatst bewerkt: