2014-01-23 103 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