set_select()将每个选项标记为已选中

时间:2015-12-18 23:56:36

标签: codeigniter

当我点击编辑某个现有项目时,CodeIgniter 3的set_select功能始终选择任何select输入的最后一个选项。

我将只显示前两个select,如下所示:

<div class="form-group col-md-6">
    <label for="id_marca">Marca do Carro</label>
    <select id="id_marca" name="id_marca" class="form-control" required>
        <option value="" selected disabled>Selecione</option>
        <?php foreach ($marcas as $m) { ?>
            <option value="<?php echo $m['id']; ?>" <?php echo set_select('id_marca', $m['id'], true); ?>>
                <?php echo $m['nome_marca']; ?>
            </option>
        <?php } ?>
    </select>
</div>
<div class="form-group col-md-6">
    <label for="id_modelo">Modelo do Carro</label>
    <select id="id_modelo" name="id_modelo" class="form-control" required>
        <option value="" selected disabled>Selecione</option>
        <?php foreach ($modelos as $m) { ?>
            <option value="<?php echo $m['id']; ?>" <?php echo set_select('id_modelo', $m['id'], TRUE); ?>>
                <?php echo $m['nome_modelo']; ?>
            </option>
        <?php } ?>
    </select>
</div>

以下是问题的屏幕截图。在Inspector中可以看到,每个option都被选中。

enter image description here

我几天前就开始工作了,现在神奇地不再工作了。

1 个答案:

答案 0 :(得分:1)

您的代码中存在的问题是您在所有选项

中将其作为第三个参数

set_select(&#39;第一个参数将是名称&#39;,&#39;第二个参数将是值&#39;,&#39;第三个参数将是&#34; true / false&#34 ;选择或不选择此值&#39;)

我认为您需要查看this

<强>更新

$options = array(
                  'small'  => 'Small Shirt',
                  'med'    => 'Medium Shirt',
                  'large'   => 'Large Shirt',
                  'xlarge' => 'Extra Large Shirt',
                );

$shirts_on_sale = array('small', 'large');

echo form_dropdown('shirts', $options, 'large');

// Would produce:

<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>

你可以看到this

对此感到抱歉

更新2

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