Drupal Form API: создание элементов формы на основе значений базы данных (динамическое создание форм) - PullRequest
0 голосов
/ 23 октября 2010

Я создаю форму, в которой мне нужно заполнить элементы формы «X» (текстовые поля должны быть конкретными) на основе значений в базе данных (количество элементов X, свойства каждого элемента и т. Д.).Есть ли способ сделать это с помощью Drupal Form API или я должен начать откуда-то еще.Я попытался использовать цикл for () в функции генерации формы, но это не работает.Пожалуйста, оставьте свои предложения и любые связанные ссылки.

1 Ответ

1 голос
/ 23 октября 2010

уверен, что можете, просто поместите #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 _'.

Надеюсь, это то, что вы ищете.:)

...