0
我的主要問題Drupal的模塊功能主題化是:與AHAH
是否每當形式得到通過AHAH(ahah_helper)重修theme_hook()函數被調用?
我試圖顯示一個選擇框,有一些過濾選項,當用戶改變它時,它下面的表也改變了。
我有這個現在:
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
什麼我可以做,以使這項工作任何建議?我正在開發我們自己的模塊,因此使用views模塊不是一個好主意。
謝謝。
這幾乎說得沒錯。如果我的確如你所說的那樣,頁面呈現兩個選擇。我所要做的就是將該div放在字段集上,像以前一樣從表中刪除它,然後將表和插入字段插入到該字段集中。如果它沒有像這樣設置,則將呈現兩個選擇,並且該表不會對任何選擇作出反應。現在可以。我沒有意識到表單API有這種標記類型,它真棒。戈納認爲這是正確的答案,但它需要一些小小的編輯。謝謝:D – hfingler 2010-11-06 13:04:54
歡迎:) – 2010-11-06 15:59:08