Bien, creo que le puse cosas de más que no te ivan a servir, te dejo el codigo mas sintetizado:
Código PHP:
Ver original<?php
if (isset($_GET['term'])){
try {
$conn = new PDO('mysql:host=localhost;dbname=nombre_db', 'root', 'root');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, nombre FROM tabla WHERE nombre LIKE :term");
$stmt->execute(array('term' => '%'.$_GET['term'].'%'));
while($row = $stmt->fetch()) {
$return_arr[] = array('value' => $row['nombre'], 'id' => $row['id']);
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
header('Content-type: application/json');
}
?>
Date cuenta que en el array, 'value' toma el valor de nombre, e 'id' toma el valor de id, no debes poner poner por ejemplo, 'nombre' => $row['nombre'], ya que jquery no te reconocerá 'nombre', ya que 'value' e 'id', son como palabras reservadas (o así mas o menos lo interpreto).
Código Javascript
:
Ver original<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="css/jquery-ui-1.10.3.custom.min.css">
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.10.3.custom.min.js"></script>
<script type="text/javascript">
$(function() {
$(".auto").autocomplete({
source: "search.php",
minLength: 1,
select: function(event, data) {
$("#captura_id").val(data.item.id);
$(".auto").val(data.item.value);
},
});
});
</script>
</head>
<body>
<form method="post" action="insert.php">
<p><label>nombre:</label><input type='text' id='nombre' name='nombre' value='' class='auto'></p>
<input type='text' id='captura_id' name='captura_id'></p>
<input type="submit">
</form>
</body>
</html>
por razones que no entiendo, en el campo donde hago el autocompletado, si le pongo un id (por ejemplo #auto) no me hace el autocompletado, necesariamente debe ser clase (ejemplo .auto) aun no se porqué.
espero me haya explicado, saludos