CodeIgniter验证下拉菜单

时间:2012-08-27 18:15:42

标签: php codeigniter

如果选项等于“选择”,我将如何在CodeIgniter中编写?抛出一个错误,指出需要选择一个选项?

<option>Select</option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
<option>Option 4</option>

非常感谢提前。

2 个答案:

答案 0 :(得分:3)

<select id='my_options'>
<option value=0>Select</option>
<option value=1>Option 1</option>
<option value=2>Option 2</option>
<option value=3>Option 3</option>
<option value=4>Option 4</option>
</select>
您可以在控制器中执行以下操作:

$this->form_validation->set_rules('my_options','Select Options','required|greater_than[0]');

显然这假设您使用的是form_validation类,并且您的表单被定向到一个控制器,您可以在其中编写上面的代码行。那会这样做吗?

答案 1 :(得分:1)

据我所知,处理这种情况的唯一方法是创建自定义函数。使用它并不困难,例如:

首先,为form_validation库创建规则:

$this->form_validation->
set_rules('my_dropdown', 'Dropdown', 'callback_my_func');

其中my_func是验证函数,它返回true或false(以及错误消息)。

以下是my_func的示例:

注意:您必须指定每个选项的值,以便您可以使用它们 在我的示例中,您将“选择”选项设置为0.通过执行以下操作:

<option value="0">Select</option>

......这是功能:

 function my_func($dropdown_selection){
//If the selection equals "Select" that means it equals 0(which is the "hidden" value of it)
    if($dropdown_selection === 0) {
    //Set the message here.
    $this->form_validation->set_message('my_func', 'You must specifiy a value for your dropdown');
    //Return false, so the library knows that something  is wrong.
    return FALSE;
    }
    //If  everything is OK, return TRUE, to tell the library that we're good.
    return TRUE:

    }

此代码应该可以使用,但是没有经过测试。您可以随时发挥创意,添加更多代码并根据您的特定网络应用进行定制。有关更多信息,请查看CI有关form_validation库 here 的文档。