我有一个drupal表单,我希望它可以作为“添加一个”:在表单末尾有一个按钮,单击它时,另一个表单将追加到它。这里是我的代码部分:drupal 7 ajax表单重建表单以更改form_state的值
function add_passenger_form($form, &$form_state){
if(!isset($form_state['num_names'])){
$form_state['num_names']=2;
}
$form['add_button']= array(
'#type' => 'button',
'#value'=> 'Add more',
'#ajax' => array(
'callback' => 'ajax_add_passenger_callback',
'method' => 'replace',
'effect' => 'fade',
'wrapper' => 'last_field',
),
);
$form['form_number']=array(
'#prefix'=>'<div class="form_number">',
'#suffix'=>'</div>',
'#type'=>'hidden',
'#value'=>2,
);
}
function ajax_add_passenger_callback($form, &$form_state){
$form_state['num_names']++;
$form_state['rebuild']=TRUE;
$form['form_number']['#value']=$form_state['num_names'];
return array(
'#type' => 'ajax',
'#commands' => array(
ajax_command_replace(".form_number", render($form['form_number'])),
)
);
}
我想$形式[“num_names”] [“#值”]增加一个当我点击添加一个按键。现在它只能工作一次(到3)。
的add_passenger_form_callback只需要返回$形式[ 'passenger_fieldset']。添加按钮需要具有'submit'属性和'add_passenger_form_add_one'函数,该函数更新num_names的form_state并重建表单。 – vizzaro