Drupal7:要形成的动态多维数组,如何使用动态处理程序(使用Dynamics提交)
(很抱歉我的英语写作不好) 嗨! 我有一个多维数组,如下所示:Drupal7:要形成的动态多维数组,如何使用动态处理程序(使用Dynamics提交),drupal,drupal-7,drupal-forms,Drupal,Drupal 7,Drupal Forms,(很抱歉我的英语写作不好) 嗨! 我有一个多维数组,如下所示: A A1 A2 B B1 C C1 C2 C3 ... foreach (...){ ... $form[$tree][$subtree][$id]['remove'] = array( '#type' => 'submit', '#submit' => array('_delete_element_submit'),
A
A1
A2
B
B1
C
C1
C2
C3
...
foreach (...){
...
$form[$tree][$subtree][$id]['remove'] = array(
'#type' => 'submit',
'#submit' => array('_delete_element_submit'),
'#ajax' => array(
'callback' => '_delete_element_ajaxcallback',
'wrapper' => 'my-html-id',
),
);
...
}
我想把这个数组显示成一个表单(我做到了=))。对于每个元素(A、A1、A2、B…),我想添加一个ajax移除按钮,如下所示:
A x
A1 x
A2 x
因此,对于每个元素,我添加了一个带有ajax参数的提交表单,如下所示:
A
A1
A2
B
B1
C
C1
C2
C3
...
foreach (...){
...
$form[$tree][$subtree][$id]['remove'] = array(
'#type' => 'submit',
'#submit' => array('_delete_element_submit'),
'#ajax' => array(
'callback' => '_delete_element_ajaxcallback',
'wrapper' => 'my-html-id',
),
);
...
}
我想我可以在为每个处理程序使用处理程序时使用参数。但在谷歌搜索之后,似乎不可能将参数传递给handler:/
无法创建Dynamics处理程序?:/为动态表单的每个元素实现deleteajax按钮的正确/最佳方法是什么
谢谢(我希望我明白了 希望以下代码会有所帮助:
$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;
}