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