Autocomplete на произвольном элементе
09.08.2015
Если вам потребовалось сделать автодополнение на произвольном элементе формы, не используя Form API, необходимо:
1) Добавить необходимые атрибуты для элемента формы
До
<input id="txt-existing-bidder" type="text"></input>
После
<input id="txt-nickname" type="text" class="form-text form-autocomplete text" autocomplete="OFF"></input>
2) Добавить hidden value после textfield
<input class="autocomplete" type="hidden" id="txt-nickname-autocomplete" value="/##path_to_autocomplete##"/autocomplete" disabled="disabled" />
3) Добавить скрипты
<?php
drupal_add_js("misc/autocomplete.js");
drupal_add_js("misc/ahah.js");
4) Создать функцию, которая возвращает JSON объект
<?php
/**
* Searches all auction users and returns a JSON object of all users
* @param $search the value to be searched
* @return JSON object with all users
*/
function autocomplete_users($search = '') {
// TODO: implement search function here
// DEBUG
$users['admin {uid:1}'] = 'admin';
$users['jochen {uid:2}'] = 'jochen';
return drupal_json($users);
}
Результат:

