在Codeigniter视图中加载数据

时间:2014-01-23 17:24:17

标签: php forms codeigniter templates

我想将数据加载到我的视图中,尤其是我的控制器items中的变量。 但是在我的控制器中,我想在推送到视图之前动态设置items

我尝试了下面的代码,但它不起作用。视图加载错误“Undefined variable:items”。

public function index(){
    if ($this->input->post('filter'))
    {
        $search = $this->input->post('filter');
        $test=$this->upload_model->test_r(); 
        $data['items']=$test;
    }
    else
    {
        $data['items']=$one;
    }
    $data=array ('other'=>$othrs, 'links'=>$links);
    $this->load->view('gallery_view', $data);
}

我希望这样做是因为默认情况下$data['items']被设置为$one,当页面加载时,但是在页面上我有一个选择框,所以我希望如果选择框已更改,$data['items']将被设置为其他内容。但这只是在使用选择框时,否则应该使用$data[items]=$one查找。 $ data数组具有需要在视图中加载的其他值,例如“others”和“links”。

我视图中的选择框

<?php echo form_open(base_url().'page') ?>
<form class="form-inline" role="form">
    <select class="form-control" id="filter" name="filter" onchange="this.form.submit()">
        <option value="1">1</option>
        <option>2</option>
        <option>3</option>
    </select>
</form>
<?php echo form_close(); ?>  

上面的索引控制器功能适用于我的控制器“Pages”。选择框中的值被捕获得很好,当我对传递的值进行回显时,它会正确显示。

问题是视图数据“items”会根据是否使用选择框而改变。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在条件

之前执行此行
$data=array ('other'=>$othrs, 'links'=>$links,'items'=>"");

删除控制器中的以下行。

$data=array ('other'=>$othrs, 'links'=>$links);

因为您在设置$data

后重新分配$data["items"]