Использование идентификатора и значения с автозаполнением jquery, javascript, json и php - PullRequest
0 голосов
/ 03 февраля 2012

Я ищу простой пример кода, показывающего, как использовать автозаполнение jquery с идентификаторами и значениями, json и php, но я не могу их найти. В основном у меня есть список имен сотрудников в базе данных, у них есть идентификатор и имя. Я хотел бы отобразить имя, но использовать идентификатор в скрытом поле при отправке формы. Я хотел бы предоставить список имен через php и json ajax. Я также хотел бы использовать эту функцию, где вы должны ввести, скажем, 3 символа, прежде чем отобразится автозаполнение, поскольку это очень длинный список имен сотрудников. Не уверен, нужно ли передавать эти 3 символа php в качестве параметра для этого.

Я нуб, так что простой пример действительно был бы оценен.

Спасибо

1 Ответ

4 голосов
/ 03 февраля 2012

В 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 );

Так что это весь непроверенный псевдокод, но он должен указывать вам правильное направление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...