Drupal 7表单文本字段自动完成不起作用

时间:2017-11-29 16:14:17

标签: php sql drupal-7

我是Drupal的新手,我正在尝试创建一个包含自动完成功能的动态文本字段的表单。此自动填充功能将从数据库中获取值。

我有以下代码:

表格:

function site_finder_form($form, &$form_state) {

    $form['site_finder_company_name'] = array(
        '#type' => 'textfield',        
         '#autocomplete_path' => 'companies/autocomplete',
    );

    /* Additional Form Fields here */

    return $form;
}

挂钩菜单:

function site_finder_menu()
{

    // path with autocomplete function for companies
    $items['companies/autocomplete'] = array(
        'page callback' => '_site_finder_autocomplete',
        'access arguments' => array('access companies autocomplete'),
        'type' => MENU_CALLBACK
    );
    return $items;
}

自动填充功能

function _site_finder_autocomplete($string) {
    $matches = array();

    // Select Rows that match the query

    $companies =       db_select('company_info', 'e')
                     ->fields('e', array('Name'))
                     ->condition('Name', '%' . db_like($string) . '%', 'LIKE')
                     ->execute();

    // Query DB to get matches

    foreach ($companies as $company){
        $matches[$company->Name] = check_plain($company->Name);
    }

    drupal_json_output($matches);

}

我已经完成了几个教程,看看自动完成功能在Drupal中是如何工作的,而且我已经遵循Hook菜单和自动完成功能的正确命名约定,所以我并不完全确定当我在文本字段中输入值时,为什么这不起作用。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我意识到您必须清除Drupal缓存才能使Hook菜单更改生效。