Php 将变量从一个控制器方法传递到另一个控制器方法
我正在使用CodeIgniter框架。我加载一个主视图,其中包含几个选项卡,这些选项卡通过AJAX加载Php 将变量从一个控制器方法传递到另一个控制器方法,php,jquery,codeigniter,shared-state,Php,Jquery,Codeigniter,Shared State,我正在使用CodeIgniter框架。我加载一个主视图,其中包含几个选项卡,这些选项卡通过AJAX加载中的其他视图。我的控制器类如下所示: class MainController extends MY_Controller function main($id=0) { $this->load->model('main_model'); $this->data['info'] = $this->main_model->
中的其他视图。我的控制器类如下所示:
class MainController extends MY_Controller
function main($id=0)
{
$this->load->model('main_model');
$this->data['info'] = $this->main_model->foo($id);
$this->load->view('main_view', $this->data);
}
function tab1()
{
$this->load->view('tab1_view', $this->data);
}
}
我通过调用mywebapp/main/123
加载主页。id
可以在main
方法和main\u视图中使用。但是当我单击选项卡时,我想在主视图中的
中使用id
。最好的方法是什么?也许有什么方法可以使这个变量对控制器中的每个方法都是全局的
我使用jQuery加载选项卡:
$("#div").load(mywebapp/tab1);
使用\u构造()
或者,您可以将其更改为使用:$this->uri->uri\u to_assoc(n)
,它们是/method/controller/key/value/key2/value2
示例:
/user/search/name/joe/location/UK/gender/male
[array]
(
'name' => 'joe'
'location' => 'UK'
'gender' => 'male'
)
不幸的是,这对我不起作用。当我用$(“div”).load(mywebapp/tab1)加载一个“子视图”时,`MainController
再次被加载,$this->\u id
被重写为空($this->uri->segment(2)
是tab1),所以传递它$('div').load('mywebapp/tab1?somevar=');如果存在某个变量,则覆盖$this->\u id
/user/search/name/joe/location/UK/gender/male
[array]
(
'name' => 'joe'
'location' => 'UK'
'gender' => 'male'
)