Ver Mensaje Individual
  #1  
Antiguo 22-04-2020
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Ajax no retorna datos

Hola, sufridores encerrados.
Es la primera vez que intento utilizar Ajax con jQuery. Y soy completamente ignorante del tema.
Intento recibir una respuesta de MySql con ajax desde una pagina PHP.
Como recibo un arreglo vacío, me pongo a investigar y probar cosas y cosas....
Descubro lo que pienso que es el problema: en los datos que recibe el archivo .php, para hacer la llamada a MySql.
Resulta que la consulta a la base de datos se realiza incorrectamente porque la variable string que recibe el archivo PHP desde Ajax lleva al final dos corchetes [] os pongo el código:
Esta es la consulta con Ajax
Código:
if (theForm.NIF.value != '')
	    {
	    valorBusqueda = theForm.NIF.value;

		$.ajax({
        url: 'ver_si_dupliDNI.php',
        data: {valorBusqueda},
        type: 'POST',
        success: function(response) 
        {
           if(response.error) 
           {
           	   warnInvalid(theForm.NIF,"Error al recibir información del la Base de Datos.","");
           }else{ alert(response); // me devuelve []
					let array_obtenido = JSON.parse(response);
					siDupli = array_obtenido.length;
            	if (siDupli > 0)
            	{
            		warnInvalid(theForm.NIF,"Ya existe otro cliente con el mismo NIF.","");
            	}
           		}
		}
		});

		}
Y este es el archivo PHP:
Código PHP:
<?php
//Archivo de conexión a la base de datos
require ('../conexion.php');
//Variable de búsqueda
$consultaBusqueda $_POST['valorBusqueda'];

$consultaBusqueda str_replace($caracteres_malos$caracteres_buenos$consultaBusqueda);

//Comprueba si $consultaBusqueda está seteado
if (isset($consultaBusqueda)) {
print(
'Busqueda2 = '.$consultaBusqueda); // Devuelve el NIF con corchetes: 12345678Z[]
    
$consulta mysqli_query($conection"SELECT * FROM cliente
    WHERE nif = '%
$consultaBusqueda%'
    "
);
    };

  
$json = array();
  while(
$row mysqli_fetch_array($consulta)) {
  
///    print('Busqueda2 = '.$row['nif']);
    
$json[] = array(
      
'nif' => $row['nif']
    );
  }
  
$jsonstring json_encode($json);
  echo 
$jsonstring;
?>
¡ Ah, en la base de datos existe un registro con nif=12345678Z! Que es el que envío desde Ajax.
Seguro que es una simpleza. Pero llevo todo el día con esto y no encuentro la salida.
Espero vuestra ayuda. Y ya, gracias por adelantado.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 22-04-2020 a las 02:25:01.
Responder Con Cita