То же самое я работаю над drupal 7 и его работой для меня.Ниже приведен код.Надеюсь, это поможет вам.То, что я сделал, это при выборе модели автомобиля, изменится вариант автомобиля, и данные сохранятся в таблице.
функция add_offer_form ($ form, $ formstate) {
$ form ['add_offer_new_car_model'] = array (
'#type' => 'select',
'#required' => TRUE,
'#options' => $car_model,
'#ajax' => array(
'effect' => 'fade',
'progress' => array('type' => 'none'),
'callback' => 'variant_callback',
'wrapper' => 'replace_variant',
),
);
// Поле со списком для выбора нового варианта автомобиля
$form['add_offer_new_car_variant'] = array(
'#type' => 'select',
'#options' => array(),
// The prefix/suffix provide the div that we're replacing, named by #ajax['wrapper'] above.
'#prefix' => '<div id="replace_variant">',
'#suffix' => '</div>',
);
// AJAX-запрос вызывает функцию построителя форм для каждого изменения.
// Мы можем изменить способ построения формы на основе $ form_state.
if (!empty($formstate['values']['add_offer_new_car_model'])) {
$model_id = $formstate['values']['add_offer_new_car_model'];
$rows = array();
$result = db_query("SELECT id, variant_name from {va_car_variant} where car_model_id in ($model_id,1) order by variant_name");
while ($data = $result->fetchObject()) {
$id = $data->id;
$rows[$id] = $data->variant_name;
}
$form['add_offer_new_car_variant']['#options'] = $rows;
}
}
////////////////////////////////////////////////////////// // /////// ФУНКЦИЯ ДЛЯ AJAXCALL BACK
функция option_callback ($ form, & $ form_state) {
return $form['add_offer_new_car_variant'];
}