我有一个Opencart网站,我目前正在尝试在前端使用ajax将数据传递到后端的php控制器,但是我无法从后端的请求中获取值
这是前端ajax代码:
$.ajax({ url: 'index.php?route=checkout/cart/addAll',
type: 'post',
data: 'product_list= test' ,
dataType: 'json',
success: function(json) {});
在后端控制器上,我正在尝试检索变量“ product_list”,但它不起作用
$products = $this->request->post['product_list'];
$logger->write("products to add to cart is"+ strval($products));
最后一条语句继续将0打印到日志文件 有什么帮助吗?怎么了?
我也尝试过
$products = json_decode($this->request->post['product_list'], true);
具有相同的结果
答案 0 :(得分:0)
好的,已修复,不是Ajax的问题,它是从服务器端访问变量,因此我使用了$_POST
而不是$this->request->post
,它可以正常工作
答案 1 :(得分:0)
所以我只是这样做了
在文件catalog/view/theme/defaulttemplate/common/home.twig
中,我将此代码添加到文件末尾
$(document).ready(function() {
$.ajax({url:'index.php?route=checkout/cart/addAll',
type: 'post',
data: 'product_list= test' ,
dataType: 'json',
success: function(json) {}
});
});
在第479行的文件catalog/controller/checkout/cart.php
中,我添加了
public function addAll(){
print_r($this->request->post);
}
我在控制台http://joxi.ru/krDlvPdfKGejar
中看到了我所做的只是更正了您的js代码。希望这会有所帮助。