我想将数据加载到我的视图中,尤其是我的控制器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”会根据是否使用选择框而改变。
我该如何解决这个问题?
答案 0 :(得分:1)
在条件
之前执行此行$data=array ('other'=>$othrs, 'links'=>$links,'items'=>"");
删除控制器中的以下行。
$data=array ('other'=>$othrs, 'links'=>$links);
因为您在设置$data
$data["items"]