0
我正在創建一個表單,我必須根據數據庫中的值填充「X」表單元素(特定的文本字段) X個元素,每個元素的屬性等)。有沒有辦法使用Drupal Form API來做到這一點,或者我應該從其他地方開始。 我試着在窗體生成函數中使用for()循環,但這不起作用。請發佈您的建議和任何相關鏈接。Drupal表單API:基於數據庫值創建表單元素(動態表單創建)
我正在創建一個表單,我必須根據數據庫中的值填充「X」表單元素(特定的文本字段) X個元素,每個元素的屬性等)。有沒有辦法使用Drupal Form API來做到這一點,或者我應該從其他地方開始。 我試着在窗體生成函數中使用for()循環,但這不起作用。請發佈您的建議和任何相關鏈接。Drupal表單API:基於數據庫值創建表單元素(動態表單創建)
確定你可以,只需將#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],
);
}
在最後你將有每個問題是由標識的關聯數組「的問題_」的$ id
我希望這是你要找的。 :)
感謝您的答案,但我正在尋找的是創建一個「數量」的表單元素,其中數字從數據庫中拉出。假設我有問卷,問題存儲在數據庫中,那麼現在頁面需要爲每個問題生成一個文本字段(#問題數量,#問題屬性在數據庫中)。我們可以使用Form API來做到這一點嗎? – 2010-10-23 19:31:18
編輯我的答案,希望我現在完全明白你的問題:) – Bladedu 2010-10-24 08:23:18
謝謝你的回答。我意識到我在代碼中省略了「$」,for循環現在可以工作。新手經驗教訓:在跳到SF之前查看你的代碼。 – 2010-10-24 17:17:51