2014-03-25 75 views
3

我有一個表格顯示問卷的問題。一些問題是真/假(單選按鈕),但一些是自由文本輸入。每個調查問卷可以有任何數量的問題,與用戶提供的答案一起存儲在查找表中。要充分利用CodeIgniters表單驗證庫,我想我會用一個數組中輸入名稱和存儲調查問題爲索引的主鍵:CodeIgniter - 表單驗證和POST數據

查看:

<input type="radio" name="question[<?=$id;?>]" value="<?=$answer?> <?=set_radio('question['. $id . ']', $answer) ?> /> 

控制器:

$this->form_validation->set_rules('question[]', 'Questions', 'required'); 

CodeIgniter似乎沒有正確驗證單選按鈕,當沒有默認值設置。關於我是否正確地做這件事的任何想法?

回答

2

參考: http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#arraysasfields

檢查數組作爲域來引用,但你需要調用特定的陣列中,如果您的輸入是question[pie],您的驗證需要檢查question[pie]而不是questions[]

我只是在這裏作出假設,因爲我不知道你作爲迴應得到了什麼,或者你已經嘗試了什麼。

+0

感謝您的回覆。我在表格中有幾個真/假問題,並且名稱是動態生成的: 'question [11]''''question [13]'''question [15]'等 '$ this-> form_validation-> set_rules('question []','Questions','required');'似乎不起作用,但僅在沒有選擇單選按鈕時才起作用。一旦被選中,所有其他人都會通過驗證。 – user2710915

+0

好,如果你驗證'question []'你驗證ENTIRE數組(所以一個TRUE)使'required'爲真。您需要爲表單中的每個問題動態創建單個'..validation-> set_rules('question [XX]')''。不要在根數組''question []'上運行它 – Jakub