我的模特,
function get_partners_name()
{
$q = $this->db->select("id,fname,lname")
->from('partner');
$all_partners = $q->get()->result();
$data = array();
foreach($all_partners as $partner)
{
$data[$partner->id] = $partner->fname.' '.$partner->lname;
}
return $data;
}
我的控制器var_dump($ partners)数据是,
array (size=2)
38 => string 'Mahesh' (length=6)
40 => string 'Rahul' (length=4)
我的观点,
<?php array_unshift($partners, "-Select-");?>
<?php echo form_dropdown('parnter', $partners,'',''); ?>
所以在下拉列表中我想显示,
<option value='0'>-Select-</option>
<option value='38'>Mahesh</option>
<option value='40'>Rahul</option>
但它显示,
<option value='0'>-Select-</option>
<option value='1'>Mahesh</option>
<option value='2'>Rahul</option>
答案 0 :(得分:0)
来自PHP手册。
'array_unshift()将传递的元素添加到数组的前面。请注意,元素列表作为整体预先添加,以便前置元素保持相同的顺序。所有数值数组键都将被修改为从零开始计数,而不会触及文字键。'
因此,在使用unshift
时,您的密钥会重新编号。
因为永远不应该选择select
选项,我建议将其硬编码到视图中。如果您不希望用户选择它,也不要给它一个值。
<select name='foo'>
<option disabled>-Select-</option>
<?php
foreach($partners as $partner){
echo '<option value="';
echo $partner->id;
echo '">';
echo $partner->name;
echo '</option>';
}
?>
</select>