当我打开特定的客户表单时,我的网址会更改为:
http://localhost/proj/dashboard/customers/edit/1
正如您所看到的那样,带有ID的参数(在本例中为1)。 现在,我想在调用我的ajax之前调用我的ajax时,在控制器上获取此ID。
目前,我的ajax如下:
$.post("ajax_edit", {name: _name, age: _age, function(aux){
console.log(aux);
});
不发送任何带ID的参数。我希望我可以通过PHP获得它。
print_r($this->uri->segment_array());
/* output:
Array
(
[1] => dashboard
[2] => customers
[3] => edit
[4] => ajax_edit
) */
但不幸的是,这对我来说是什么。那么,我怎样才能获得这个价值呢?
答案 0 :(得分:0)
或者你可以在你的javascript中使用php脚本。
$.post("ajax_edit", {name: _name, age: _age, obj_id: <?php echo $this->uri->segment(4); ?>, function(aux){
console.log(aux);
});
答案 1 :(得分:0)
在你的route.php配置
中$route['dashboard/customers/edit/(:num)'] = "customers/edit/$1";
在您的customer.php控制器
中public function edit($user_id) {
$data['user_id'] = $user_id;
$this->load->view('NAME_OF_VIEW_FILE', $data);
}
在您的视图文件中
$.post("ajax_edit", {user_id: <?= $user_id ?>, name: _name, age: _age, function(aux){
console.log(aux);
});
我认为这是使用会话或玩uri_segments的正确方法。
答案 2 :(得分:-1)
解决以不同的方式。虽然我确实认为它不是最佳选择,但我使用了会话变量。
所以在控制器功能编辑中:
public function edit(){
// all code
$this->session->set_userdata('obj_id', $this->uri->segment(4)); // which is the ID of the customer
}
然后在ajax_edit函数中我只需调用该会话项。
public function ajax_edit(){
$id = $this->session->userdata('obj_id');
}