简体   繁体   English

codeigniter form_dropdown,设置选项值,不带数组

[英]codeigniter form_dropdown, set option value without an array

I want to fetch a table which has 2 columns: id and name, and I want column id as value for each option, and column name as option name 我想获取一个包含2列的表:ID和名称,并且我希望将列ID作为每个选项的值,并将列名称作为选项名称

This is my controller 这是我的控制器

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

And in my view 在我看来

 <?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); ?> 
This code meet my needs, but because I use array, the dropdown become like this: 这段代码可以满足我的需求,但是由于我使用数组,因此下拉列表如下所示:

dropdown_error

How to set option value without using an array? 如何在不使用数组的情况下设置选项值?

Put This : 把这个:

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

And change last line to be: 并将最后一行更改为:

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

As you can see checking codeigniter docs you will find out that extra param should be string not an array. 正如您看到的检查codeigniter文档一样,您会发现额外的参数应该是字符串而不是数组。

  • If it it's an array then form_dropdown() will produce an with the array key as the label. 如果它是一个数组,则form_dropdown()将产生一个带有数组键作为标签的。

replace your foreach loop 替换你的foreach循环

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

and in view 并鉴于

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM