Hola a todos! Tengo una duda, que entiendo debe ser básica pues no soy ningún experto en tecnología AJAX. Quiero validar un campo. Para ello empleo ajax, haciendo una llamada a un php que valida su valor. En caso de no cumplir la condición muestra un mensaje y retorna un error. Así, el JS principal sabe si debe abortar el proceso o continuar. Algo así:
-------- Código PHP que efectúa la validación (comprueba.php) ------
if [Pasa la validación] { echo 'S'; }
else { echo 'N'; }
------------- Funcion JS que efectua la llamada a AJAX -------------------
fun_accion_ajax()
{
var v_error = 'N';
$.ajax({
type: "GET",
url: "./comprueba.php",
async:true
success: function(datos)
{
if ( datos == 'N' )
{
v_error = 'S';
alert('No valida');
}
}
});
return v_error;
}
--------------- Javascript Principal --------------------
var v_error = 'N';
v_error = fun_accion_ajax();
if ( v_error == 'N' ) { [Continúa el proceso] }
Pues la duda estaría en "fun_accion_ajax()". Concretamente en la propiedad "async". Si la establezco como "async:true" hay veces que no me retorna el valor correcto. En cambio, con "async:false" va perfecto. Es correcto? Debo utilizar "async:false" en este caso? O estoy haciendo algo mal?
Muchas gracias por vusetro tiempo!