0

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

<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 中解决此类问题的最佳方法是什么?

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

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));

有人有更好的解决方案吗?

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

4

1 回答 1

3

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

然后您知道@该值有时可能为空,如果该值丢失,它会抑制错误。

NULL如果您没有 id,这样做会向第三个参数发送一个值<option>,默认情况下它会选择第一个参数。

于 2012-04-13T08:13:35.797 回答