假设我的编辑用户表单上有一个选择标记。它包含可以分配给用户的学校列表。
<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));
任何人都有更好的解决方案吗?
编辑:请注意,这不是我使用的实际代码。我现在就输入了这个,所以如果有语法错误或诸如此类的话,我很抱歉。
答案 0 :(得分:3)
只需使用echo form_dropdown('school', $school_list, set_value('school', @$school->id));
然后你知道@
有时候这个值可能是空的,如果缺少这个值,它就会出现错误。
如果您没有ID,执行此操作会向第3个参数发送NULL
值,而默认情况下会选择第一个<option>
。