我是Codeigniter的新手,我在選擇框驗證方面遇到了一些麻煩。我想在開始時選擇默認值。Codeigniter中的選擇框驗證
<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
我該如何使它在窗體中顯示所需的字段,並在選擇零「0」值時顯示錯誤消息。
我是Codeigniter的新手,我在選擇框驗證方面遇到了一些麻煩。我想在開始時選擇默認值。Codeigniter中的選擇框驗證
<select name="schooGroups[]">
<option value="0">Select User Group</option>
<option value="1">Admin</option>
</select>
我該如何使它在窗體中顯示所需的字段,並在選擇零「0」值時顯示錯誤消息。
這會將條目標記爲「已選中」,默認情況下爲...。你想要一個多選的下拉列表,對吧?
<select name="schoolGroups[]" multiple="multiple">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>
至於驗證,你可能想建立自己的驗證規則:
你的控制器的方法:
//...
$this->form_validation->set_rules('schoolGroups','School groups','required|callback_check_default');
$this->form_validation->set_message('check_default', 'You need to select something other than the default');
//...
的添加此另一種方法:
function check_default($array)
{
foreach($array as $element)
{
if($element == '0')
{
return FALSE;
}
}
return TRUE;
}
如果你只需要一個選擇(無法多選)然後更容易:
HTML:
<select name="schoolGroups">
<option value="0" selected="selected">Select User Group</option>
<option value="1">Admin</option>
</select>
與驗證方法:
$this->form_validation->set_rules('schoolGroups','School groups','required|callback_check_default');
$this->form_validation->set_message('check_default', 'You need to select something other than the default');
回調:
function check_default($post_string)
{
return $post_string == '0' ? FALSE : TRUE;
}
感謝達米安爲及時響應。我只是添加它,並得到錯誤信息爲「無法訪問對應於您的字段名稱的錯誤消息」,而不是我的一個:(mi失去一些東西? –
它的完成我使用回調函數名稱作爲set_message中的字段名稱。 $ this-> form_validation-> set_message('check_default','你需要選擇默認的東西以外的東西'); –
是的,對不起,我的錯誤,我加快了這部分!我現在糾正它,供將來參考。很高興它的工作! –
這樣做的正確方法是設置默認選項的值清空!然後你可以使用一個簡單的form_validation規則像一個文本字段:
<select name="schoolGroups">
<option value="">Select User Group</option>
<option value="1">Admin</option>
</select>
。
$this->form_validation->set_rules('schoolGroups','School groups','required');
100%同意,但有時候你的列表是從數組中填充的,別無選擇,只能有第一個選項0 –
這一個爲我工作。
THE VIEW
<select name="schoolGroups[]" multiple="multiple">
<option value="">Select User Group</option>
<option value="1">Admin</option>
</select>
控制器
$this->form_validation->set_rules('schoolGroups','School groups','callback_check_default');
CALLBACK
function select_validate()
{
$choice = $this->input->post("schoolGroups");
if(is_null($choice))
{
$choice = array();
}
$schoolGroups = implode(',', $choice);
if($schoolGroups != '') {
return true;
} else {
$this->form_validation->set_message('select_validate', 'You need to select a least one element');
return false;
}
}
沒有必要創建用於選擇的陣列例如'schooGroups []',後綴'[]'創建一個數組,除非另有需要,否則使用多個選擇框。 – Sarfraz