Созонов Алексей

Веб-разработчик

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

Результат:

Drupal Autocomplete

#Drupal