我有一个使用一个下拉和IM使用笨,形式帮助和表单验证,所以当我在我的形式得到了验证错误,所有的正确输入字段使用笨的SET_VALUE填充的形式,但是,对于下拉这并不工作
我正在做 :
<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>
当形式出现错误,总是下拉列表的第一个值被选中,以前未设置
任何想法,我究竟做错了什么?
我有一个使用一个下拉和IM使用笨,形式帮助和表单验证,所以当我在我的形式得到了验证错误,所有的正确输入字段使用笨的SET_VALUE填充的形式,但是,对于下拉这并不工作
我正在做 :
<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>
当形式出现错误,总是下拉列表的第一个值被选中,以前未设置
任何想法,我究竟做错了什么?
正确的方法使用set_select()
是
<select name="myselect">
<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
</select>
所以,安德拉斯·拉茨方法/答案将无法正常工作。
你的方法是正确的。
<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>
但是请记住, set_value()
只会如果你已经安装了它验证规则返回值,你的情况进行mid
。 你可以尝试如下 -
<?php echo form_dropdown('mid', $id_map, (isset($_POST['mid']) ? $_POST['mid'] : ''), 'id="mid"') ?>
或只是设置一个验证规则mid
太
这是因为你必须使用set_select()函数,而不是SET_VALUE();
您可以检查此: http://codeigniter.com/user_guide/helpers/form_helper.html
和正确的语法:
编辑:
<?php echo form_dropdown('mid', $id_map, set_select('mid'), 'id="mid"'); ?>
如果你有一个默认值,也应该在2参数set_select。
我希望这会工作。
<?php // Change the values in this array to populate your dropdown as required
$options = array(
'active' => 'Active',
'inactive' => 'Inactive',
);
echo form_dropdown('mid', $options,$id_map, ' id="mid"');
?>
那么如果从foreach循环这样选择的形式选择内容
<?php foreach ($roles as $role) {
echo "<option value=" . $role->id . ">" . $role->role_name . "</option>";
}
?>
如果你没有实际的下拉字段有效性规则,然后
echo form_dropdown('mid',$id_map);
足够了。