我尝试使用post方法将ajax值存储在codeigniter控制器变量中,我在控制器中使用了$ this-> input-> post方法,但控制器中的变量未获取ajax值,该变量返回为null,帮我找到解决此错误的方法,谢谢。
代码如下:
查看:
<button type="button" class="btn btn-info btn-md edit-pdt" data-pid="<?php echo $row->product_id;?>"><i class="fa fa-pencil"></i></button>
控制器:
public function displayprodt()
{
$pid= $this->input->get('pid');
$data = array(
'title' => "Edit Product",
'result' => $this->ProductModel->displayprodt($pid)
);
$this->load->view('header',$data);
$this->load->view('navbar');
$this->load->view('sidebar');
$this->load->view('editproduct',$data);
$this->load->view('footer');
}
jQuery:
$('.edit-pdt').click(function(){
var base_url = $("#base_url").val();
var pid = $(this).attr("data-pid");
alert(pid);
$.ajax({
type: "GET",
url: base_url+"index.php/Product/displayprodt",
data: ({pid: pid}),
success: function(response) {
location.href = base_url+"index.php/product/displayprodt";
}
});
});
型号:
public function displayprodt($pid){
$this->db->select("*");
$this->db->from("todaysdeal_products");
$this->db->where("product_id",$pid);
$query = $this->db->get();
return $query->result();
}
答案 0 :(得分:0)
您正在使用$this->input->post('pid')
,那么您必须在ajax中使用POST。
更改
1: type: "GET", to type: "POST",
2: data: ({pid: pid}), to data: {pid: pid},
答案 1 :(得分:0)
问题是您的页面重定向了第一个请求返回的内容。请尝试将location.href = base_url+"index.php/product/displayprodt";
替换为console.log(response);
或alert(response);
答案 2 :(得分:0)
我认为您需要创建控制器来控制ajax数据,我会举一个例子:
控制器
public function displayprodt()
{
$pid = $this->input->post('pid',true);
$data=array(
'error' =>false,
'title' => 'Edit Product',
'result' => $this->ProductModel->displayprodt($pid),
);
header('Content-Type: application/json');
echo json_encode($data ,JSON_PRETTY_PRINT);
}
模型
public function displayprodt($pid){
$this->db->select("*");
$this->db->from("todaysdeal_products");
$this->db->where("product_id",$pid);
$query = $this->db->get();
return $query->result();
}
jQuery
$('.edit-pdt').click(function(){
var base_url = $("#base_url").val();
var pid = $(this).attr("data-pid");
alert(pid);
$.ajax({
type: "POST",
url: base_url+"index.php/Api/displayprodt",
data: ({pid: pid}),
dataType: "JSON",
success: function(response) {
location.href = base_url+"index.php/product/displayprodt"; // or any url you want redirect.
}
});
});
希望您能找到解决方法:')