Codeigniter - 表单验证和表单下拉问题

时间:2012-04-13 08:08:00

标签: php codeigniter validation

假设我的编辑用户表单上有一个选择标记。它包含可以分配给用户的学校列表。

<select 'school'>
    <option value='1'>School 1</option>
    <option value='2'>School 2</option>
</school>

通过:echo form_dropdown('school', $school_list)

创建

如果我正在编辑的用户已经分配了一个学校,我希望下拉列表默认为该。

所以,我这样做了:

$school = $this->db->get_where('schools', $filters) # result object from database
echo form_dropdown('school', $school_list, $school->id);

问题是,当然,当用户尚未分配学校时,这会引发错误,并且$school->id为空。

所以我的问题是;在codeigniter中解决这类问题的最佳方法是什么?

我想到解决这个问题的一种方法是在$school->id上返回NULL。所以,

empty($school->id) && ($school->id = NULL);
echo form_dropdown('school', $school_list, $school->id);

但是,它似乎不那么优雅,但是,我还没有测试过它。如果我想重新填写表单,如果提交时出错,我认为它不会很好。

echo form_dropdown('school', $school_list, set_value('school', $school->id));

任何人都有更好的解决方案吗?

编辑:请注意,这不是我使用的实际代码。我现在就输入了这个,所以如果有语法错误或诸如此类的话,我很抱歉。

1 个答案:

答案 0 :(得分:3)

只需使用echo form_dropdown('school', $school_list, set_value('school', @$school->id));

即可

然后你知道@有时候这个值可能是空的,如果缺少这个值,它就会出现错误。

如果您没有ID,执行此操作会向第3个参数发送NULL值,而默认情况下会选择第一个<option>