Hola, vengo del subforo de Ajax donde me remiten a este.
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:
function 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)
}
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.php 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>";
}
...
Aquí es donde intento que, en caso de estar ocupado el nombre de login, vuelva el foco al control de texto de login mediante:
echo "<script type='text/javascript'>document.getElementById('login').focus ();</script>";
Pués eso, que no hay forma. Discupad por el tocho y un saludo