Ver Mensaje Individual
  #12 (permalink)  
Antiguo 31/05/2017, 17:42
elprofeguti
 
Fecha de Ingreso: diciembre-2011
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problemas con $.post()

Cita:
Iniciado por Alexis88 Ver Mensaje
Eso pasa porque la condición está fuera del alcance de la llamada de retorno del método $.post(). En otras palabras, fuera de $.post(), la variable mensaje no está definida, que es exactamente lo que dice el mensaje. Coloca tu condición entre comentarios y justo debajo o por encima de ella, sin salir del método $.post(), inserta la condición de ejemplo que te indiqué para saber cómo se está evaluando a la variable.


Obviamente no puedes acceder al valor de mensaje desde fuera del método por lo que acabo de explicar. Para hacerlo, tendrías que utilizar una de las dos soluciones que te planteé al inicio.

Fuera de esto, me queda una duda: ¿qué es lo que realmente deseas hacer? ¿Acceder al valor de mensaje desde afuera del método o saber cómo se está evaluando su valor en la condición?

Por cierto, para ver el resultado de la condición que planteo, tienes que seguir casi los mismos pasos que realizaste para ver el resultado de la petición asíncrona, solo que ahora debes dirigirte a la pestaña "Console".


Acabo de comprobar que:
1.- La función $.post() demora en dar su respuesta.
2.- En Consola sale lo siguiente:
Hola1
INICIOFIN
cosa
cosa Fuera
3.- El orden debería ser:
Hola1
cosa
cosa Fuera
cosaFIN
4.- Pero el valor de control no cambia porque el $.post() se demora en dar su respuesta y para eso ya llegó hasta la última fila de cpodigo.

Cita:

function formhashregistro(form, email) {

var control;//iniciamos una variable de control general

if (!regex.test(email.value)) {
// código...
}else{
console.log("Hola1");
var control="INICIO";
var textoBusqueda = $("input#email").val();
$.post("multiUSERS_registro1_buscarINPUT2.php", {valorBusqueda: textoBusqueda},function(mensaje)
{

if (mensaje == "Si") {
control="cosa";
$("#email").html('E-mail: <span class="rojo f08">El correo <strong>'+textoBusqueda+'</strong> ya está registrado, pruebe con otro.</span>');console.log(control);

}else{control="carro";$("#email").html("Email: <span class='verde f08'>El correo <strong>"+textoBusqueda+"</strong> no está registrado, puede continuar23.</span>");
};
console.log(control+" Fuera");
}
);console.log(control+"FIN");


};
// continua...
if (datepicker.value == '') {
// más código...
}