Ознакомьтесь с функцией автозаполнения jQueryUI, в частности, Удаленный источник данных и Пользовательские данные и отображение примеры.
На стороне PHP вы захотите
- Запрос к базе данных на основе предоставленных поисковых данных
- Создание массива соответствующих записей
- Показать этот массив как данные JSON, используя
json_encode()
Обновление
Изменено в селекторе автозаполнения моего друга на Facebook.
Вот ядро JavaScript
jQuery(function($) {
var field = $('#friend-name'); // text field for name
var idField = $('#friend-id'); // hidden field for ID
field.autocomplete({
minLength: 3,
width: 240,
source: 'search.php',
change: function(event, ui) {
idField.val(ui.item != null ? ui.item.id : '');
return true;
}
}).data('autocomplete')._renderItem = function(ul, item) {
var img = '<img src="' + item.picture + '">';
return $('<li>')
.data('item.autocomplete', item)
.append('<a>' + item.label + img + '</a>')
.appendTo(ul);
};
});
PHP-часть для поиска по параметрам будет выглядеть примерно так
// search.php
// assuming PDO connection already made in $db
$stmt = $db->prepare('SELECT `id`, `name`, `picture` FROM `Person` WHERE LOWER(`name`) LIKE ?');
$stmt->execute(array(
strtolower($_GET['term'] . '%')
));
$people = array();
while($person = $stmt->fetch(PDO::FETCH_ASSOC)) {
$people[] = array(
'label' => $person['name'],
'value' => $person['name'],
'picture' => $person['picture'],
'id' => $person['id']
);
}
echo json_encode($people);