Мой главный вопрос:
Вызывается ли функция theme_hook () всякий раз, когда форма перестраивается через ahah (ahah_helper)?
Я пытаюсь показать окно выбора снекоторые параметры фильтрации, когда пользователь меняет его, таблица ниже тоже меняется.
У меня есть это сейчас:
function veiculos_listar_form($form_state)
{
$form = array();
ahah_helper_register($form, $form_state);
//biulds $options
$form['listar_veics'] = array(
'#type' => 'fieldset',
'#prefix' => '<div id="listar-veics-wrapper">',
'#suffix' => '</div>',
'#tree' => TRUE,
);
if (!isset($form_state['values']['listar_veics']['filial']))
$form['#filial_veic'] = 1;
else
$form['#filial_veic'] = $form_state['values']['listar_veics']['filial'];
$form['listar_veics']['filial'] = array(
'#type' => 'select',
'#title' => "Listar veículos da filial",
'#options' => $filiais,
'#default_value' => $form['#filial_veic'],
'#ahah' => array(
'event' => 'change',
'path' => ahah_helper_path(array('listar_veics')),
'wrapper' => 'listar-veics-wrapper',
'method' => 'replace',
),
);
return $form;
}
function veiculos_listar_form_submit($form, &$form_state)
{
}
function _listar_veiculos_tabela($filial)
{
//builds $header and $data
$table = theme_table($header, $data);
return $table;
}
function theme_veiculos_listar_form($form)
{
$output = drupal_render($form);
$filial = $form['#filial_veic'];
$output .= '<br>' . $filial . '<br>';
$output .= _listar_veiculos_tabela($filial);
return $output;
}
function veiculos_theme() {
return array(
'veiculos_listar_form' => array(
'arguments' => array('form' => NULL),),
);
}
В моем маленьком и невинном мире это должно работать, если theme_hookвызывается при каждом событии ahah (изменение).
Проблема в том, что напечатанная переменная всегда одна и та же, например, то, что выбирает пользователь, не сохраняется.Если пользователь выбирает другие параметры, он показывает новый параметр, но переменная $ filial всегда остается неизменной при печати темы.
Например:
http://img230.imageshack.us/img230/9646/62144334.jpg
Любое предложение о том, что я мог бы сделать, чтобы сделать эту работу?Я разрабатываю наш собственный модуль, поэтому использование модуля представлений не очень хорошая идея.
Спасибо.