我沒有嘗試,但我敢打賭,它的工作原理:利用hook_form_alter()來訪問你的模塊配置形式。在那裏,你將有一個& $ form_state,並能夠做到花式AJAX的東西(see this)。 困難的部分是隻在alter-hook上修改你的表單。可能的方式:
不知道這是否正常工作(最優雅的方式):
function mymodule_form_alter(&$form,&$form_state,$form_id) {
if ($form_id == 'block_admin_configure') {
// Find the delta in the $form variable
if ($form['delta'] == 'the_delta_you_are_looking_for') {
//do fancy ajax stuff
}
}
}
醜,但絕對有可能的:
function mymodule_form_alter(&$form,&$form_state,$form_id) {
if ($form_id == 'block_admin_configure' && arg(4) == 'mymodule') {
//do fancy ajax stuff
}
}
}
即使醜陋,但也有可能:
function mymodule_block_configure($delta = '') {
$form = array();
if ($delta == 'my_block') {
$form["my_block_change_this"] = array(
"#type" => "hidden",
"#value" => "lalala",
)
}
}
function mymodule_form_alter(&$form,&$form_state,$form_id) {
if ($form_id == 'block_admin_configure') {
if (!empty($form['my_block_change_this'])) {
//do fancy ajax stuff
}
}
}
提示:打印出form_state-array(在修改掛鉤處),看看那裏有什麼(這總是我做的第一件事情我遇到FAPI問題)。希望這可以幫助。
我很傷心,這沒有任何迴應。你有沒有得到它的工作或找到你的答案?跟進鏈接會很棒,因爲我正在處理完全相同的事情。 –
添加了一些東西:-) – Chris