Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/02/2009, 14:30
prim
 
Fecha de Ingreso: febrero-2009
Mensajes: 16
Antigüedad: 15 años, 2 meses
Puntos: 0
Como volver al texto de login, cuando el registro es negativo

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