получение работы автозаполнения
Я честно сделал то, что этот и этот учебник сказали мне, но каким-то образом мои текстовые поля автозаполнения все еще выдают ошибку ajax. но чтобы быть более конкретным: ошибка ajax выдает 200 http-ответов и статус "ОК", но нет текст ответа.
Моя настройка такова:
$form['field_new_verein_location_'.$i] = array(
'#type' => 'textfield',
'#title' => t('<a id="ds_region_new_verein_'.$field_id.'" style="color:black;text-decoration:none;">Neuer Verein Ort</a>'),
'#default_value' => '',
'#size' => 60,
'#maxlength' => 128,
'#required' => TRUE,
'#description' => t('description'),
'#autocomplete_path' => 'dsregion/autocomplete'
);
function ds_regions_menu(){
$items['dsregion/autocomplete']=array(
'title' => 'location auto complete',
'page callback' => '_dsregion/autocomplete',
'access arguments' => array('access region autocomplete'),
'type' => MENU_CALLBACK
);
return $items;
}
function _dsregion_autocomplete($string) {
$matches = array();
$result = db_select('ds_plz_ort','o')
->fields('o',array('ort'))
->condition('ort','%'.db_like($string).'%','LIKE')
->range(0,10)
->execute()
->fetchAllKeyed();
foreach($result as $row){
$matches[$row->ort]=check_plain($row->ort);
}
drupal_json_output($matches);
}
1
1 answers
У вас есть небольшая ошибка в вашем свойстве page callback
для пункта меню. Вместо имени функции обратного вызова у вас есть строка, напоминающая путь.
Просто измените
'page callback' => '_dsregion/autocomplete'
До
'page callback' => '_dsregion_autocomplete'
Затем очистите кэш Drupal, и вы должны быть готовы к работе.
2
Author: Clive, 2012-03-01 22:21:25