【发布时间】:2017-08-09 06:55:14
【问题描述】:
我是 CI 的新手,我正在开发一个电子商务网站。我在将产品添加到购物车时遇到问题。
下面是我的 Jscript 和控制器代码。问题是它在本地主机上工作得很好,但在服务器上却不行。
这是我的代码:
Ajax 请求
$(document).ready(function(){
$('.add_cart a').on('click',function(e){
e.preventDefault();
var productid = $(this).data('productid');
var productName = $(this).data('prdname');
var productPrice = $(this).data('prdprice');
var productDp = $(this).data('prddp');
console.log(productDp);
console.log(productid);
console.log(productPrice);
console.log(productName);
$.ajax({
url:"www.wesbiteurl/home/addToCart/",
method:'POST',
data:{id:productid, prdname:productName,
prdprice:productPrice, dp:productDp},
success:function(data){
/*alert("product added to cart");*/
$('.msg').html(data);
}
});
});
});
这部分工作正常,我正在从这里发送数据。
在我的控制器中
public function addToCart(){
$data = array(
'id'=>$this->input->post('id'),
'qty' =>1,
'price' =>$this->input->post('prdprice'),
'name'=>$this->input->post('prdname'),
'options' => array('prdDp' => $this->input->post('dp'))
);
//return var_dump($data);
//array(5) { ["id"]=> string(2) "10" ["qty"]=> int(1) ["price"]=> string(2) "20" ["name"]=> string(18) "product name" ["options"]=> array(1) { ["prdDp"]=> string(90) "here link image" } }
if($this->cart->insert($data)){
return var_dump($this->cart->contents());
}else{
return false;
}
}
正如您所见,在 if 语句之前它工作正常,之后它就不起作用了。不过,这在 localhost 中工作正常。
【问题讨论】:
-
return 语句不适用于您的 ajax。只需使用
echo json_encode($this->cart->contents()) -
ajax 响应中的
data是什么?控制器中的cart是您的型号吗?能把插入函数代码贴在这里吗? -
@kishor10d 它转到 else 语句...如果没有执行
-
@ArunpandianM 来自产品列表页面的数据...购物车是 CI 库
-
@MuhammadAkberKhan tnx mate :) 我的名字中有一些特殊字符,它现在正在工作 tyvm ^^
标签: php ajax codeigniter cart