本文介绍了使用 set_value 以 codeigniter 形式填充下拉列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个使用下拉菜单的表单,我使用 codeigniter、表单助手和表单验证因此,当我在表单中收到验证错误时,所有正确输入的字段都使用 codeigniter 的 set_value 填充,但这不适用于下拉列表

i have a form that uses a drop down and im using codeigniter , form helper and form validationso when i get a validation error in my form , all the correctly entered fields are populated using set_value of codeigniter , however this doesnt work for dropdown

我在做:

<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>

当在表单中出现错误时,总是选择下拉列表的第一个值并且之前没有设置

when get error in form , always the first value of dropdown is selected and not previously set

任何想法,我做错了什么?

Any ideas , what am i doing wrong?

推荐答案

正确使用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>

因此 Andras Ratz 方法/答案将不起作用.

So Andras Ratz method/answer won't work.

你的方法是正确的.

<?php echo form_dropdown('mid', $id_map, set_value('mid'), 'id="mid"') ?>

但是请记住,如果您为 mid 设置了验证规则,set_value() 只会返回该值.您可以尝试如下 -

However remember that set_value() is only going to return the value if you have setup a validation rule for it, in your case for mid. You could try as below -

<?php echo form_dropdown('mid', $id_map, (isset($_POST['mid']) ? $_POST['mid'] : ''), 'id="mid"') ?>

或者也为mid设置一个验证规则

or just set a validation rule for mid too

这篇关于使用 set_value 以 codeigniter 形式填充下拉列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-17 01:32
查看更多