0

データベース内の値(X個の要素、各要素のプロパティなど)に基づいて、「X」フォーム要素(具体的にはテキストフィールド)を入力する必要があるフォームを作成しています。Drupal Form APIを使用してこれを行う方法はありますか、それとも別の場所から開始する必要がありますか?フォーム生成関数でfor()ループを使用しようとしましたが、これは機能しません。提案や関連リンクを投稿してください。

4

1 に答える 1

1

確かに、DBからの値を#default_valueに設定するだけです。

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

EDIT($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

これがあなたが探しているものであることを願っています。:)

于 2010-10-22T20:36:08.453 に答える