在codeigniter

时间:2018-05-08 17:34:48

标签: php codeigniter foreach

我在form_dropdown中遇到codeigniter的问题:

这是我的表格:

ee()->load->helper('form');

        $sql = ee()->db->select('*')->from('exp_credit_tracker_credit_type')->get();

        $credit_type = array();

        foreach ($sql->result() as $row) {
            array_push($credit_type, $row->credit_name);
        }

        $data['credit_type'] = form_dropdown('credit_type', array($credit_type));

输出,由于某种原因如下:

<select name="credit_type">
<optgroup label="0">
<option value="0" selected="selected">HOURS</option>
<option value="1">CREDITS</option>
</optgroup>
</select>

我不需要optgroup。此外,当我查看该值时,我注意到它们是索引键对值。我的问题是我需要使用值CREDITHOURS,以便稍后我可以轻松地将它们放入我的数据库中。

我该怎么办?一个简单的方法,我不想一次又一次地遍历它们,以便将密钥与值匹配。

2 个答案:

答案 0 :(得分:2)

由于您正在制作的数组,<optgroup>标记正在发生。我相信对foreach的以下更改将提供您想要的选项值。

 foreach($sql->result() as $row) 
 {
     $credit_type[$row->credit_name]=$row->credit_name;
 }

然后你需要对form_dropdown()的第二个参数做一个小改动。在将数组$credit_type放入另一个数组之前。导致<optgroup>标记出现的原因。

 $data['credit_type'] = form_dropdown('credit_type', $credit_type);

答案 1 :(得分:0)

你需要给它一个value => option label数组array('HOURS' =>'HOURS')。你给它一个像array(0 => 'HOURS')

这样的数组