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テキストフィールドに値を入力すると作業しません。
ご協力いただきありがとうございます。