Drupal Form API:根据数据库值创建表单元素(动态表单创建)

时间:2010-10-22 20:32:15

标签: drupal forms dynamic-forms drupal-forms form-api

我正在创建一个表单,我必须根据数据库中的值(X个元素数,每个元素的属性等)填充“X”表单元素(特定于文本字段)。有没有办法使用Drupal Form API执行此操作,或者我应该从其他地方开始。 我尝试在表单生成函数中使用for()循环,但这不起作用。请将您的建议和相关链接发布给您。

1 个答案:

答案 0 :(得分:1)

确定可以,只需将#default_value与来自数据库的值放在一起。

$form['text'] = array(
  '#type' => 'textfield',
  '#default_value' => $db->val,
);

修改 假设您有一个问卷调查对象($questionnaire),其中包含一个名为“question_list”的参数,您存储了所有问题;你可以做的是在列表上运行foreach,如:

$form['questionnaire'] = array('#type'=>'fieldset','#title'=>$questionnaire->title,);

foreach($questionnaire->question_list as $id=>$question_obj){
 $form['questionnaire']['question_'.$id]=array(
 '#type'=>'textfield',
 '#title'=>$question->question,
 '#default_value'=>$form_state['values']['question_'.$id],
 );

}

最后,您将拥有一个关联数组,其中每个问题都由'question _'标识。$ id

我希望这就是你要找的东西。 :)