jQueryUI autocompleta JSON no devuelve los datos esperados

Usando jQueryUI autocomplete para buscar una base de datos MySQL. Cuando el usuario presiona ingresar en el campo de búsqueda, quiero completar un div con los resultados devueltos desde DB.

El código funciona y devuelve una lista de sugerencias de autocompletar.

Sin embargo, los datos JSON devueltos en la función select: no son los que esperaba.

En el ejemplo de código PHP a continuación, la consulta solicita todos los campos de la base de datos relacionados con cada título coincidente con la consulta. Debió haber otros campos, como autor, oferta, isbn, género, etc., sin embargo, solo se devolvió el campo de title .

La consola de Google Chrome se ve así:

 Object {item: Object} item: Object label: "Much Obliged Jeeves" value: "Much Obliged Jeeves" __proto__: Object Object {label: "Much Obliged Jeeves", value: "Much Obliged Jeeves"} 

¿Dónde están los otros campos?

Mi jQuery:

 $('#srxbks').autocomplete({ source: "autocomplete_test.php", minLength: 1, select: function( event, ui ) { console.log(ui); console.log(ui.item); console.log(ui.item.label); //Not working: var out = 'Title: ' + ui.item.title + '
'; out += 'Author: ' + ui.item.author + '
'; $('.booksTableDIV').val(out); } });

Mi PHP:

 <?php include 'connect.php'; $term = strip_tags($_GET['term']);//retrieve search term sent by autocomplete $qstring = "SELECT * FROM `books` WHERE `title` LIKE '%" .$term. "%'"; $query = mysql_query($qstring) or die(mysql_error()); while ($row = mysql_fetch_array($query)) { $row['title']=htmlentities(stripslashes($row['title'])); $row['bid']=(int)$row['bid']; $row_set[] = $row['title']; } echo json_encode($row_set); 

Solo necesita asegurarse de que todas sus variables estén incluidas en la matriz de retorno. Su PHP es la parte que tiene un problema, no está transfiriendo las variables a JSON correctamente. Tu jQuery está bien. Lo siguiente es lo que debe hacer para cada variable adicional que desea enviar a su jQuery.

 // Initialize your variables here $returns = array(); $i = 0; while ($row = mysql_fetch_array($query)) { // Format your variables here $row['title']=htmlentities(stripslashes($row['title'])); $row['bid']=(int)$row['bid']; // Enter results into JSON array here $returns[$i]['title'] = $row['title']; $returns[$i]['bid'] = $row['bid']; $i++; } echo json_encode($returns);