当我点击编辑某个现有项目时,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
都被选中。
我几天前就开始工作了,现在神奇地不再工作了。
答案 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>