Hola, buenas tardes, tengo un problema con el autocompletado en jquery y php, no se si va el tema en este foro o en el de php, pero lo pongo aqui porque el nucleo en si de que funcione es jquery, tengo un formulario en el que se va a dar de alta un cliente, tengo los input, Nombre y telefono, quiero que ingresando el numero de telefono, primero se haga un autocompletado para mostrar los telefonos que hay en la base de datos, y posteriormente al elegir el telefono, se llene en automatico el campo Nombre, y en un campo oculto, me guarde el id del cliente lo estoy intentando de la siguiente forma:
formulario.php
Código:
<html lang="en">
<head>
<!-- Jquery Autocompletado -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/black-tie/jquery-ui.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script>
$(document).ready(function(){
$( "#telefono" ).autocomplete({
source: "buscartelefono.php",
minLength: 2
});
$("#telefono").focusout(function(){
$.ajax({
url:'buscarcliente.php',
type:'POST',
dataType:'json',
data:{ telefono:$('#telefono').val()}
}).done(function(respuesta){
$("#nombre").val(respuesta.nombre);
$("#nombre").val(respuesta.paterno);
$("#nombre").val(respuesta.materno);
$("#idcliente").val(respuesta.id);
});
});
});
</script>
</body>
<form >
<label>Nombre Cliente</label>
<input class="form-control" id="nombre" name="nombre" >
<input type="hidden" name="idcliente" id="idcliente">
<label>*Teléfono</label>
<input class="form-control" name="telefono" id="telefono">
</form>
</html>
buscartelefono.php
Código PHP:
$telefono = $_GET['term'];
include("config.php");
$prefijo= $_SESSION["prefijotabla"];
$consulta = "SELECT telefono,celular,idotro FROM ".$prefijo."_clientes WHERE telefono LIKE '%$telefono%', celular LIKE '%$telefono%', idotro LIKE '%$telefono%'";
$result = $con->query($consulta);
if($result->rowcont() > 0){
foreach($result as $fila){
$telefonos[] = $fila['telefono'];
$telefonos[]. = $fila['celular'];
$telefonos[]. = $fila['idotro'];
}
echo json_encode($telefonos);
}
buscarcliente.php
Código PHP:
$telefono = $_POST['telefono'];
include("config.php");
$prefijo= $_SESSION["prefijotabla"];
$consulta = "SELECT nombrec,apaterno,amaterno,id FROM ".$prefijo."_clientes WHERE telefono = '$telefono' OR celular='$telefono' OR idotro='$telefono'";
$result = $con->query($consulta);
$respuesta = new stdClass();
if($result->rowcont() > 0){
$fila = $result->fetch(PDO::FETCH_ASSOC);
$respuesta->nombre = $fila['nombrec'];
$respuesta->paterno = $fila['apaterno'];
$respuesta->materno = $fila['amaterno'];
$respuesta->id = $fila['id'];
}
echo json_encode($respuesta);
Pero al poner el telefono en el campo telefono, no me muestra los telefonos en la base de datos y al poner algun telefono que si esta en la base, no me autocompleta el campo Nombre, no se si estoy haciendo algo mal, Nota, estoy usando bootstrap