我有一个下拉框,其中包含在一页上选择的一些名称,并正确保存在数据库中。但是当我尝试编辑页面时,我得到了除下拉框(即在"未选择"选项中(之外的所有值,必须对我的代码进行哪些更改? 设计规范:
<option value="select"></option>
<?php foreach ($PName as $row ): ?>
<option value="<?=$row['pcode']?>" <?php echo set_select('PName', $row['pcode']); ?>>
<?=$row['PName']?></option>
<?php endforeach ?>
控制器代码:
$query = $this->db->get('parmaster');
$data['PName']=$query->result_array();
试试这个,这里的诀窍是你必须传递 set_select(( 的第一个参数 select 标签的名称,在你的例子中它是'PName'
<select id="PName" name="PName">
<?php
foreach ($PName as $row ):
?>
<option value="<?=$row['pcode']?>" <?php echo set_select('PName', $row['pcode'], False); ?>>
<?=$row['PName']?>
</option>
<?php endforeach ?>
</select>
有关更多帮助,请参阅下面的 set_select(( 代码点火器文档 https://www.codeigniter.com/userguide3/helpers/form_helper.html?highlight=set_select#set_select
好吧,如果您想获取所有值而不考虑其选择,我建议您使用一个隐藏字段:
<form ...>
<input type="hidden" name="pcodes" value="<?=implode(',',array_column($PName,'pcode'))?>"/>
<select>...
尝试:
<option value="">---</option>
<?php $selected = ($row['pcode'] == your selected data ) ? true : false; ?>
<?php foreach ($PName as $row ): ?>
<option value="<?=$row['pcode']?>" <?php set_select('PName', $row['pcode'], $selected); ?>>
<?=$row['PName']?>
</option>
<?php endforeach ?>