Hola , pense que era sencillo esto , siempre hago en el submit de mis forms un onsubmit="return controla_form()", la idea que se me plantea ahora es chequear contra un php, mediante ajax, si el usuario que se esta dando de alta , ya no existe en la tabla, de usuarios, y avisar de su existencia.
El tema es que al hacer controla_form(), no espera que Ajax termine de enviarme los datos si esta o no, y sigue de largo, con el submit.
Mas o menos asi
<script>
var esta = false;
function ver_repetido(valor)
{
// php_repetidos.php devuelve un valor que puede ser 0 o cualquier numero
new Ajax.Request('php_repetidos.php?valor='+valor,
{
method:'get',
onSuccess: function(transport){
var response = transport.responseText;
if(response!='0') // Esta;
esta = true;
},
onFailure: function(){ alert('Imposible conectar...') }
});
}
function controla_form()
{
formulario = $('form1');
with (formulario)
{
if(campo1.value == "")
{
alert('falta campo 1);
return false;
}
....... mas controles similares
ver_repetido(campo_valor_no_repetir.value);
// en este punto nunca espera a la funcion que tiene el Ajax para //que cambie el estado de false o true de la variable global esta
if( esta == true)
{
alert('Ya Existe el usuario , elija otro nombre');
return false;
}
}
}
Si falta alguna llave o algo , pido disculpas , el codigo es solo a tono demostrarivo de mi intencion.
Si alguien conoce una forma mas clara o elegante , pero principalmente que funcione, se agradece.
Saludos a la barra !!!