使用SET_VALUE填充下拉在笨形式(populate dropdown in codeignit

2019-06-27 02:42发布

我有一个使用一个下拉和IM使用笨,形式帮助和表单验证,所以当我在我的形式得到了验证错误,所有的正确输入字段使用笨的SET_VALUE填充的形式,但是,对于下拉这并不工作

我正在做 :

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

当形式出现错误,总是下拉列表的第一个值被选中,以前未设置

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

Answer 1:

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



Answer 2:

这是因为你必须使用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。

我希望这会工作。



Answer 3:

  <?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"');
                    ?>


Answer 4:

那么如果从foreach循环这样选择的形式选择内容

<?php foreach ($roles as $role) {
        echo "<option value=" . $role->id . ">" . $role->role_name . "</option>";
                      }
      ?>


Answer 5:

如果你没有实际的下拉字段有效性规则,然后

echo form_dropdown('mid',$id_map);

足够了。



文章来源: populate dropdown in codeigniter form using set_value