Lo que quisiera hacer y no veo manera es lo mismo que cuando te registras en este foro y en la casilla de texto del login, al hacer un onblur, comprueba, mediante ajax, si ese nombre está ocupado por otro usuario o no. Si ese nombre está utilizado te avisa y te envia automáticamente a la misma casilla de texto de login.
He conseguido hacerlo todo excepto esto último: siempre se va a la siguiente casilla y parece no hacer caso del evento onblur salvo para cargar la función ajax.
Os pongo el código:
<input type="text" name="login" onblur="comprobarLogin();"> <span id="resultado_login" ></span>
Bien, comprobarLogin() no hace otra cosa sino llamar a la función ajax...
Código:
Donde carga la respuesta en resultado_login (es un simple span que está al lado de la casilla del formulario de logueo) a partir de la petición que hace a comprovalogin.phpfunction comprobarLogin(){
divResultado = document.getElementById('resultado_login');
nom=document.formulario_alta.login.value;
ajax=objetoAjax();
ajax.open("POST", "comprovalogin.php",true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText
}
}
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send("nombre="+nom)
}
Código PHP:
... //hago la consulta a la base de datos y compruebo si el nombre existe o no
if(mysql_num_rows($result)==0) echo "este nombre puedes utilizarlo";
else {
echo "login ya utilizado!";
echo "<script type='text/javascript'>document.getElementById('login').focus();</script>";
}
...
Pués eso, que no hay forma. Discupad por el tocho y un saludo

