codeigniter form_dropdown,设置没有数组的选项值

时间:2015-06-13 08:12:54

标签: php html arrays codeigniter

我想获取一个包含2列的表:id和name, 我希望列id作为每个选项的值,列名作为选项名称

这是我的控制器



 //populate provinsi
        $this->load->model('Provinsi');
        $provinsi = $this->Provinsi->get();

        $this->load->view('admin/pages/product_form', array(
            'provinces' => $provinsi,
        ));




在我看来



<?php
$options_provinsi = array('select_one' => 'Select one');
foreach ($provinces as $provinsi) {
       $options_provinsi[] = array(
              $provinsi->id => $provinsi->nama,
       );
}

$extra = 'id="provinsi" class="form-control" onChange="loadLocation('provinsi','kota');"';
echo form_dropdown('provinsi', $options_provinsi, 'select_one', $extra);
?>
&#13;
&#13;
&#13; 这段代码符合我的需要,但因为我使用数组,下拉列表就像这样:

dropdown_error

如何在不使用数组的情况下设置选项值?

2 个答案:

答案 0 :(得分:0)

放这个:

$extra_string = null;
foreach($extra as $key => $value) {
     $extra_string .= " {$key}='{$value}'"; 
}

将最后一行更改为:

echo form_dropdown('provinsi', $options_provinsi, 'select_one', $extra_string);

正如您可以看到检查codeigniter文档,您会发现额外的参数应该是字符串而不是数组。

  • 如果它是一个数组,那么form_dropdown()将生成一个数组键作为标签。

答案 1 :(得分:0)

替换你的foreach循环

foreach ($provinces as $provinsi) {
       $options_provinsi[$provinsi->id] = $provinsi->nama;
}

并在视野中

$extra = null;
echo form_dropdown('provinsi', $options_provinsi, 'select_one', $extra);