来自多个表的CodeIgniter下拉列表

时间:2016-02-16 09:14:58

标签: php codeigniter dropdown

我是codeigniter的新手,我正在开发一些项目,我碰巧需要显示一个下拉列表,但是填充了两个或更多表中的数据。我不知道加入是否会解决问题。这是我的观看代码:

<div class="form-group">
       <label class="control-label">Store Name</label>
        <select class="form-control" id="store" name="store">
        <?php foreach($dataget as $val)
        {
          ?>
          <option value="<?php echo $val->Store;?>"><?php echo $val->Store;?></option> 
          <?php
        }
          foreach($storename as $value)
          {
            ?>
            <option value="<?php echo $value['StoreName'];?>"><?php echo $value['StoreName'];?></option>
            <?php
          }
          ?>
            </select>
            </div>

这是我的模特:

function get_store()
{

    $this->db->select('StoreName');
    $this->db->from('store');
    $query = $this->db->get();
    $result = $query->result_array();

    return $result;
}

这是我的控制器:

public function poedit()
{
    $id = $this->uri->segment(3);
    $data['dataget'] = $this->wip_model->getByPOId($id);

    $datadrop['storename'] = $this->wip_model->get_store();

    $this->load->view('header');
    $this->load->view('editpo',$data);
    $this->load->view('footer');

}

我正在项目的编辑页面上有人可以帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:1)

在您的控制器中

public function poedit()
{
    $id = $this->uri->segment(3);
    $data['dataget'] = $this->wip_model->getByPOId($id);

    $data['storename'] = $this->wip_model->get_store();

    $this->load->view('header');
    $this->load->view('editpo',$data);
    $this->load->view('footer');

}

停止可在视图中使用的重复行

<div class="form-group">
    <label class="control-label">Store Name</label>
    <select class="form-control" id="store" name="store">
    <?php
    $store_name = array();
    foreach($dataget as $val)
    {
        $store_name[] = $val->Store;
    ?>
    <option value="<?php echo $val->Store;?>"><?php echo $val->Store;?></option> 
    <?php
    }
    foreach($storename as $value)
    {
        if(!in_array($value['StoreName'],$store_name))//it will stop duplication of rows... 
        {
    ?>
    <option value="<?php echo $value['StoreName'];?>"><?php echo $value['StoreName'];?></option>
    <?php
        }
    }
    ?>
    </select>
</div>

答案 1 :(得分:0)

好吧,看起来你放错了视图变量

$datadrop['storename'] = $this->wip_model->get_store();

应改为

$data['storename'] = $this->wip_model->get_store();

我建议将2个数组($ dataget / $ storename)合并到一个控制器中,然后在视图中使用一个foreach,代码必须更好