如何使用mysql数据库表在codeigniter中创建动态下拉列表

时间:2016-02-03 06:00:39

标签: php codeigniter

如何从动态数据库表中获取具有值和标签的动态下拉列表。 即 阵列(             ' label1的' => '值1&#39 ;,             ' LABEL2' => '值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>

如何在codeigniter中解决这个问题。

2 个答案:

答案 0 :(得分:3)

那么你应该使用:

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

答案 1 :(得分:1)

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

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

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

select选项的值为key,label为value,如下所示:

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