2014-01-23 67 views
3

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

我试了下面的代码,但它不起作用。视图加载错误“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(); ?> 

上面的索引控制器功能是用于我的控制器“的页面”。当我对传递的值进行回显时,选择框中的值被正确捕获。

问题是获取视图数据“项目”根据是否使用选择框而改变。

我该如何解决这个问题?

回答

1

如果条件

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

在控制器以下行中删除之前做这一行。

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

设置$data["items"]

后因为你重新分配 $data