Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/05/2013, 15:14
Avatar de matandomuertos
matandomuertos
 
Fecha de Ingreso: mayo-2013
Ubicación: Kemi
Mensajes: 6
Antigüedad: 11 años, 9 meses
Puntos: 0
Problema con ajax y php asincronico

Buenas, vengo a comentarles un problema el cual me esta dejando seco de cerebro y no puedo solucionarlo.

El codigo es el siguiente:

Código:
var verificar;

function valuser(url, textbox){
  text = document.getElementById(textbox).value;
  page = url +"?text=" + text;

  if(text!=""){
    if(letrasusuario(text)){
        if(cantusuario(text)){
          conexion();

          if(req!=null){
            req.onreadystatechange = respuestauser;
            req.open('GET', page, true);
            req.send(null);
        }
      }
      else{
        window.document.registrar_usuario_form.user.value = "Debe tener mas de 4 caracteres";
      }
    }
    else{
      window.document.registrar_usuario_form.user.value = "Solo puede tener letras y numeros";
    }
  }
  alert("chau");
}


function respuestauser(){
 var respuesta = req.responseText;
   if(req.readyState==4){
   		if(req.status==200){   			
		    if (respuesta=="true"){
          window.document.registrar_usuario_form.user.value = "El usuario ya esta en uso";
          verificar=1;
          alert("usado");
        }
		    else{
          window.document.registrar_usuario_form.user.value = "Usuario disponible";
          verificar=0;
          alert("disponible");
        }
   		}
   }
   else{
      window.document.registrar_usuario_form.user.value = "Cargando...";
          verificar=0;
      alert("cargando");
   }
}
Well, como verán hay alertas simplemente para guiarme que esta andando mal y lo que descubrí es que el alert("chau"); se ejecuta antes de que se ejecute cualquiera de los otros alert.
El tema es que acá no importa demasiado, pero tengo que agregar (donde estaría el alert("chau"); un IF que se fije que valor tiene VERIFICAR y de ahí continué o no, esto ocasiona un problema ya que primero ejecuta el if y después todo lo otro por lo tanto me da cualquier resultado y prácticamente explota el script xD
Hay alguna forma de decirle que no siga hasta obtener que termine de ejecutar toda esa función? o de que no me ejecute primero lo del final?
La verdad me desconcertó bastante ya que debería ejecutar el código en orden ajja

Espero que me puedan ayudar y muchas gracias!!