我在一个页面上选择了一个带有某些名称的下拉框,并将其正确保存在数据库中。但是,当我尝试编辑页面时,我得到了除下拉框(即“ nothing selected”选项中)以外的所有值,必须对我的代码进行哪些更改? 设计代码:
<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();
答案 0 :(得分:1)
尝试一下,这里的窍门是,您必须将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()的codeigniter文档。 https://www.codeigniter.com/userguide3/helpers/form_helper.html?highlight=set_select#set_select
答案 1 :(得分:0)
好吧,如果您想获得所有值而不论其选择如何,我建议您使用一个隐藏字段:
<form ...>
<input type="hidden" name="pcodes" value="<?=implode(',',array_column($PName,'pcode'))?>"/>
<select>...
答案 2 :(得分:0)
尝试:
<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 ?>