(对不起我的英文写作不好x))
你好! 我有一个像这样的多维数组:A
A1
A2
B
B1
C
C1
C2
C3
...
我希望将这个数组显示为一个表单(我做了=))。对于每个元素(A,A1,A2,B ......),我想添加一个像这样的ajax删除按钮:
A x
A1 x
A2 x
因此,对于每个元素,我添加一个带有ajax参数的提交表单,如下所示:
foreach (...){
...
$form[$tree][$subtree][$id]['remove'] = array(
'#type' => 'submit',
'#submit' => array('_delete_element_submit'),
'#ajax' => array(
'callback' => '_delete_element_ajaxcallback',
'wrapper' => 'my-html-id',
),
);
...
}
当我为每个处理程序使用处理程序时,我认为我可以使用参数。但谷歌搜索后,似乎无法将参数传递给处理程序:/ 创建动态处理程序是不可能的? :/为动态表单的每个元素实现delete ajax-button的正确/最佳方法是什么?
谢谢=)我希望我明白!
答案 0 :(得分:1)
希望以下代码会有所帮助:
$form['names_fieldset']['remove_useful_name'][$key] = array(
'#type' => 'submit',
'#value' => t('delete' ),
'#submit' => array('remove_one_method'),
'#ajax' => array(
'callback' => 'add_more_method',
'wrapper' => 'names-fieldset-wrapper',
// add trigger
'trigger_as' => array(
'name' => 'submit_name'.$key,
), //
),
);
function remove_one_method($form, &$form_state) {
dd($_POST['_triggering_element_name']);
$submit_name= $_POST['_triggering_element_name'];
$key= str_replace ('submit_name','',$submit_name);
// You can get the $key here.
// Base this $key remove the component from the form.
......
$form_state['rebuild'] = TRUE;
}