RTFM :
Данные из локальных данных, URL-адреса или обратного вызова могут быть двух вариантов:
- Массив строк:
- Массив объектов со свойствами меток и значений
Ваш ответ json на самом деле не является массивом, не так ли?Также вы можете обновить свое автозаполнение только для одного поля.
$("#name").autocomplete({ source: function callback(term, autocomplete) {
$.getJSON("php/company.php?term="+term, function(data) {
// do the magic here: extract an option array from your data, e.g.
var arrayOfStrings = data.names;
autocomplete(arrayOfStrings);
});
});
Я не понимаю, что вы хотите делать с другими данными, когда при поиске в вашей БД определенного имени вы не сможетеавтозаполнение поля ввода номера телефона, не так ли?
РЕДАКТИРОВАТЬ: Ваша проблема в том, что ваш ответ json в настоящее время выводит последнее из соответствующих имен в виде объекта.Если вы вместо этого вернете массив, функция автозаполнения будет полезна.Исправлено несколько ошибок:
$term = mysql_real_escape_string(strtolower($_GET["term"]));
$sql = "select ID,NAME,TEL from COMPANY where NAME like '%$term%' order by NAME";
$result = mysql_query($sql, DBCONN) or die ("{\"error\":\"" . mysql_error(DBCONN) . "\"}");
$output = array();
while($row = mysql_fetch_array($result)) {
$row_set = array(
"label" => $row['NAME'],
"value" => $row['NAME'],
"id" => $row['ID'],
"tell" => $row['TEL'] );
$output[] = $row_set;
}
echo json_encode($output);
Если вы сделаете это пользовательской функцией обратного вызова с настроенными вызовами ajax (см. Выше), теперь вы можете проверить наличие data.error
перед попыткой извлечь массив.* Теперь вы можете поиграть с пользовательскими элементами отображения, фокусировки и выбора событий.Например, с помощью