Hola, David.
Gracias por aconsejarme el uso de la consola. HA SIDO MUY UTIL.
Te cuento. Al final he conseguido recibir los datos desde Ajax.
Si solicito un "alert" desde la función de Ajax, me edita correctamente los datos recibidos.
Pero no me basta con ver los datos. Lo que quiero es usarlos en la aplicación.
Al principio lo que me interesaba era recibirlos. Ahora quiero utilizarlos. He definido una variable "hidden" en mi formulario para recibirlos. Copio el código de la función de Ajax:
Código PHP:
function checkDupli(theField)
{
valorBusqueda = theField.value;
$.ajax({
url: 'ver_si_dupliDNI.php',
data: {'valorBusqueda':valorBusqueda},
type: 'POST',
success: function(response)
{ //alert(response);
$("#dupliNIF").val(response);
if(response.error)
{
$("#dupliNIF").val("");
}
}
});
}
Es código javascript, pero lo pongo entre corchetes php porque se ve mejor resaltado (lo ví en un post tuyo de hace mucho).
La variable
dupliNIF es la que está definida en el formulario como "oculta".
EL PROBLEMA:
Cuando intento recuperar el valor de
dupliNIF me devuelve el valor original asignado en el formulario después de utilizar la función de control de campos.
Código PHP:
function guardar(theForm)
{
if (theForm.NIF.value != '')
{
checkDupli(theForm.NIF);
//checkDupli(theForm.NIF);
}
alert(theForm.dupliNIF.value);
if (CamposValidos(document.myformula) == true)
{
var cli = document.getElementById("nombre").value;
//document.myformula.target = "_blank";
//document.myformula.submit();
document.getElementById("myformula").reset();
document.getElementById("NIF").focus();
swal({
background: '#FFFFDF',
type: 'success',
allowOutsideClick: false,
confirmButtonText: 'Cerrar',
text: 'El cliente indicado más abajo, se dió de alta correctamente.',
footer: cli,
animation: false
}); //swal
} // Campos Válidos
document.getElementById("NIF").focus();
return false; // tiene que ser false para que espere el mensaje. Si no borraría el mensaje y no esperaría para verlo
}; // Guardar
Ya sabemos que el código es JS, aunque ponga PHP.
Bien. El formulario ejecuta la función
guardar(theForm) y al ejecutar el
alert(theForm.dupliNIF.value); y, como puede verse se resetea.
Pues el resultado es que el mensaje
alert(theForm.dupliNIF.value); reproduce el valor por defecto de el input
dupliNIF.
ESO OCURRE LA PRIMERA VEZ que se envía el formulario.
Como el formulario se resetea en la funcion
guardar(theForm),
¡¡curioso!!, (al menos para mí que soy un novato).
CUANDO SE RELLENA Y REENVIA EL FORMULARIO, al repetir la función
guardar(theForm) y al ejecutar el
alert(theForm.dupliNIF.value); ¡¡¡¡¡SORPRESA TOTAL!!!!! (AL MENOS PARA MÍ)
El resultado es que el alert muestra los valores recogidos en la consulta anterior de Ajax.
Ayuda, por favor, no entiendo nada.
Gracias por aguantar esta explicación tan extensa, pero creo que era necesario para dejar claro lo que está ocurriendo. (Para un mejor entendimiento de los expertos en este tema)
Gracias anticipadas y saludos cordiales.