在drupal中以编程方式填充表单

时间:2010-12-23 20:09:11

标签: drupal

我需要在drupal中以编程方式填充表单字段。我知道有两种方法:

  1. 使用drupal_execute($ form_item,value,$ form_state)

  2. 使用form_set_value($ form_id,$ form_state)

  3. 任何有用的例子都会有所帮助

    我尝试了下面的代码,它给出了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
    }
    

2 个答案:

答案 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