如何在drupal表单API中以编程方式填充输入字段? 让我举例说明,请考虑以下示例
function form(){
return drupal_get_form('myform');
}
function myform($form_state){
$form['name'] = array(
'#type' => 'textfield',
'$title' => 'Name: ',
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Save',
);
return $form;
}
function myform_submit($form,&$form_state){
$form_id = 'myform';
$form_state['values']['name'] = 'Hello World';
drupal_execute($form_id,$form_state);
}
这里,当发生提交事件时,我没有获取填充的值,而是在屏幕上显示死亡的白色空白屏幕。我的语法有问题吗?
答案 0 :(得分:0)
这是使用drupal_execute的正确方法。但是,您处理该表单的方式还有其他问题:尝试将提交和验证功能附加到表单。当你这样做时,你还需要将drupal_execute从提交函数中移出(这可能会导致你现在遇到的问题)。如果需要保存数据,则需要使用DB抽象层drupal_write_record或其中一个现有挂钩。
$form_state = array(
'submitted' => true,
'values' => array(
'name' => 'Hello World',
'op' => t('Save'),
'submit' => t('Save'),
'form_id' => 'myform',
),
);
drupal_execute('myform', $form_state);