Estoy tratando de convertir un ejemplo que me pasaron, para rellenar unos inputs, pero me ha costado trabajo, se que debe ser algo fácil pero apenas comienzo en la programación.
Lo que hago es que al momento de que lleno un input con id nombre, este manda el nombre a un archivo js y este lo manda a un archivo php donde genero la consulta, posteriormente imprimo el teléfono y la dirección en sus respectivos campos con id.
Hasta el momento sólo llevo una baba
<?php
require 'config/Conexion.php';
if(empty($_POST['nombre'])){
$nombre = $_POST['nombre'];
$res = mysql_query("select * from usuarios where nombre='"$nombre"'") or die(mysql_error());
while($row = mysql_fetch_array($res)){
if (condition) {
# code...
}
}
}
y este es el ejemplo que me proporcionaron
if(!empty($_POST['nombre'])){
$nombre = $_POST['nombre'];
if($nombre=='juan'){
$return = array('telefono'=>'611611611','direccion'=>'Una calle que no existe, Madrid');
} elseif($nombre=='maria') {
$return = array('telefono'=>'666666666','direccion'=>'call del diablo, Pais de las maravillas');
} else {
$return = array('error'=>'El nombre no esta guardado en la base de datos');
}
die(json_encode($return));
}
?>
HTML
<!doctype html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>POC Ajax Cliente</title>
</head>
<body>
<div id="cliente">
<form action="" method="POST">
<label for="nombre">Nombre</label>
<input type="text" id="nombre" name="nombre" value="" placeholder="Nombre.." />
<br />
<label for="direccion">Dirección</label>
<input type="text" id="direccion" name="direccion" value="" placeholder="Dirección.." />
<br />
<label for="telefono">Teléfono</label>
<input type="text" id="telefono" name="telefono" value="" placeholder="Teléfono..." />
</form>
</div>
<div id="estado">Esperando input.</div>
<!-- Scripts -->
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script type="text/javascript" src="cliente.js"></script>
</body>
</html>
JS
$(function(){
/* Ponemos evento blur a la escucha sobre id nombre en id cliente. */
$('#cliente').on('blur','#nombre',function(){
/* Obtenemos el valor del campo */
var valor = this.value;
/* Si la longitud del valor es mayor a 2 caracteres.. */
if(valor.length>=3){
/* Cambiamos el estado.. */
$('#estado').html('Cargando datos de servidor...');
/* Hacemos la consulta ajax */
var consulta = $.ajax({
type:'POST',
url:'cliente.php',
data:{nombre:valor},
dataType:'JSON'
});
/* En caso de que se haya retornado bien.. */
consulta.done(function(data){
if(data.error!==undefined){
$('#estado').html('Ha ocurrido un error: '+data.error);
return false;
} else {
if(data.telefono!==undefined){$('#cliente #telefono').val(data.telefono);}
if(data.direccion!==undefined){$('#cliente #direccion').val(data.direccion);}
$('#estado').html('Datos cargados..');
return true;
}
});
/* Si la consulta ha fallado.. */
consulta.fail(function(){
$('#estado').html('Ha habido un error contactando el servidor.');
return false;
});
} else {
/* Mostrar error */
$('#estado').html('El nombre tener una longitud mayor a 2 caracteres...');
return false;
}
});
});
NUEVO CODIGO
Este es el codigo que he tratado de realizar para que me traiga los datos, pero no lo he conseguido
<?php
require 'config/Conexion.php';
if(!empty($_POST['nombre'])){
$nombre = $_POST['nombre'];
$sql = "SELECT * FROM usuarios WHERE nombre = '.$nombre.'";
$stmt = $pdo->prepare($sql);
$stmt ->execute();
$arrDatos = $stmt->fetchAll(PDO::FETCH_ASSOC);
if($arrDatos){
foreach ($arrDatos as $row) {
$return = array ('telefono' => $row['telefono'], 'direccion' => $row['direccion']);
}
} else {
$return = array('error'=>'El nombre no esta guardado en la base de datos');
}
die(json_encode($return));
}
de aqui es de donde he conseguido el ejemplo ejemplo
Por favor, espero alguien me pueda ayudar, solo quisiera saber cómo hacer la counsulta e imprimir los datos.
GRACIAS a todos por su ayuda, he logrado conseguir lo que queria con la gran ayuda de @A.Cedano :)