我需要在drupal中以编程方式填充表单字段。我知道有两种方法:
使用drupal_execute($ form_item,value,$ form_state)
使用form_set_value($ form_id,$ form_state)
任何有用的例子都会有所帮助
我尝试了下面的代码,它给出了drupal白屏死机
function form_validate($form, &$form_state){
$form_id ='myform';
$form_state['values'] = array(
'name' => 'Test',
);
drupal_execute($form_id, $form_state); // this statement leads to white screen of death
}
答案 0 :(得分:1)
我假设您在用户提交之后尝试在验证期间填写表单中的字段?我假设这是因为您使用的是验证功能。
如果是这样,就不需要drupal_execute()函数,因为无论如何,表单都会在通过验证后提交。我想你想要的可能更像是这样:
function form_validate($form, &$form_state) {
$form_state['values']['name'] = 'test';
}
答案 1 :(得分:0)
您应该使用:
<?php
$form_id = 'mymodule_form_id';
$rendered_form = drupal_get_form($form_id);
print $rendered_form;
?>
请参阅:
http://api.drupal.org/api/drupal/includes--form.inc/function/drupal_get_form/6