我正在使用CodeIgniter框架。我加载了一个主视图,其中包含几个选项卡,通过AJAX加载<div>
中的其他视图。我的控制器类看起来像这样:
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_view
中使用。但是,当我点击该标签时,我想在id
<div>
中使用main_view
。最好的方法是什么?也许有办法让这个变量对控制器中的每个方法都是全局的吗?
我使用jQuery加载选项卡:
$("#div").load(mywebapp/tab1);
答案 0 :(得分:1)
使用__construct()
class MainController extends MY_Controller
protected $_id;
public function __construct()
{
$this->_id = $this->uri->segment(3);
}
function main()
{
$this->load->model('main_model');
$this->data['info'] = $this->main_model->foo($this->_id);
$this->load->view('main_view', $this->data);
}
function tab1()
{
//available here too
echo $this->_id;
$this->load->view('tab1_view', $this->data);
}
}
或者您可以将其更改为使用:$this->uri->uri_to_assoc(n)
,它们是/method/controller/key/value/key2/value2
之后的关键值对
示例:强>
/user/search/name/joe/location/UK/gender/male
[array]
(
'name' => 'joe'
'location' => 'UK'
'gender' => 'male'
)