如何使用 mysql 数据库表在代码点火器中创建动态下拉列表


How to create a dynamic dropdown list in codeigniter using mysql database table

如何从数据库表中获取具有值和标签的动态下拉列表。即数组( '标签1' => '值1', "标签2" => "值2")

<?php
 echo form_open('add_veg/insert_data', 'class="form-horizontal" id="myform" role="form"');
    $sales_date = array(
            'type'  => 'date',
            'name'  => 'date',
            'id'    => 'date',
            'class' => 'form-control'
    );
    $vegnames=array();
    foreach($veg_names as $r)
    {
    $vegnames[]=$r->label;
    //$r->value;
    }
    /*
    $vegnames = array(
            'cauliflower' => 'Caulifower',
            'Brinjal' => 'Brinjal'
    );
    */
    /*$veg_name = array(
            'type'  => 'text',
            'name'  => 'v_name',
            'id'    => 'v_name',
            'class' => 'form-control'
    );
    */
    $wt = array(
            'type'  => 'text',
            'name'  => 'weight',
            'id'    => 'wt',
            'class' => 'form-control'
    );
    $price = array(
            'type'  => 'text',
            'name'  => 'price',
            'id'    => 'price',
            'class' => 'form-control'
    );
    $save=array(
            'name' =>'sub',
            'value' =>'Save',
            'class' =>'btn btn-success btn-sm'
    );
    echo form_label('Sales date', 'sdate', 'class="control-label col-sm-2"');
    echo form_input($sales_date);
    echo form_label('Vegitable Name', 'vname', 'class="control-label col-sm-2"');
    //echo form_input($veg_name);
    echo form_dropdown('v_name', $vegnames,'','class="form-control"');
    echo form_label('Weight', 'wt', 'class="control-label col-sm-2"');
    echo form_input($wt);
    echo form_label('Price', 'price', 'class="control-label col-sm-2"');
    echo form_input($price);
    echo form_submit($save);
    echo form_close();
    ?>

使用这个

$vegnames=array();
    foreach($veg_names as $r)
    {
    $vegnames[]=$r->label;
    //$r->value;
    }

我得到的结果是这样的

<option value='0'>label1</option>
<option value='1'>label2</option>
<option value='2'>label3</option>

但我想要

<option value='value1'>Label1</option>
<option value='value2'>label2</option>
<option value='value3'>label3</option>

如何在编码点火器中解决此问题。

那么你应该使用:

$vegnames=array();
foreach($veg_names as $r){
    $vegnames[$r->value]=$r->label;
}

您需要具有数据库行的名称值对。

为此,您需要使用多维数组。

每个元素都应该有一个键(来自数据库的值)和值(来自数据库的标签)

选择选项的值将是键,标签的值是值,如下所示:

$vegnames=array();
foreach($veg_names as $r){
  $vegnames[$r->value]=$r->label;
}