Ver Mensaje Individual
  #4  
Antiguo 25-04-2020
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 571
Reputación: 19
jhonalone Va por buen camino
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',
        
allowOutsideClickfalse,
          
confirmButtonText'Cerrar',
          
text'El cliente indicado más abajo, se dió de alta correctamente.',
          
footercli,
        
animationfalse    
        
});    //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.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita