В jQuery UI есть отличные примеры:
http://jqueryui.com/demos/autocomplete/#remote
Нажмите кнопку просмотра источника под примером, чтобы взглянуть на Javascript. Обратите внимание на параметры для «source» (это путь к вашему PHP-скрипту, дающему результаты) и «minLength». Если для свойства minLength задано значение 3, вторая часть вашего вопроса будет решена.
На удаленной стороне результаты должны быть в формате JSON, чтобы вы могли запрашивать данные из базы данных, получать их в виде ассоциативного массива PHP, а затем использовать метод json_encode()
, чтобы поместить их в формат Плагин автозаполнения может читать. Реализация автозаполнения в их примере отправляет переменную строки запроса «term» в исходный файл, содержащий строку поиска, введенную пользователем.
В этом примере ожидаются результаты JSON от сервера в следующем формате:
[ { "id": "Branta hrota", "label": "Pale-bellied Brent Goose", "value": "Pale-bellied Brent Goose" }, ...]
Таким образом, исходная страница PHP может давать результаты, используя следующий код:
// source.php (or whatever path you used for the autocomplete "source" setting)
// Sanitize your input!
$term = mysql_real_escape_string( $_GET['term'] );
$results = mysql_query( "SELECT * FROM employees WHERE name LIKE '%{$term}%' "); // Grab your data
$output_array = new array();
while ( $row = mysql_fetch_assoc( $results ) ) {
$output_array[] = array(
'id' => $row['id']
, 'label' => $row['name']
, 'value' => $row['name']
);
}
// Print out JSON response
echo json_encode( $output_array );
Так что это весь непроверенный псевдокод, но он должен указывать вам правильное направление.