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
