2017-11-29 4 views
0

私はDrupalを初めて使用しており、オートコンプリート機能を含むダイナミックテキストフィールドを持つフォームを作成しようとしています。このオートコンプリート機能は、データベースから値を取得します。Drupal 7フォームのテキストフィールドオートコンプリートが機能しない

I持っ代わりに次のコード:

フォーム:

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でオートコンプリート機能がどのように機能するのかを見てきましたが、フックメニューとオートコンプリート機能の適切な命名規則に従っています。なぜこのisnテキストフィールドに値を入力すると作業しません。

ご協力いただきありがとうございます。

答えて

0

フックメニューの変更を有効にするために、Drupal Cacheをクリアする必要があることに気づきました。

関連する問題