使用ajax

时间:2019-02-19 04:20:30

标签: php ajax opencart

我有一个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);

具有相同的结果

2 个答案:

答案 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代码。希望这会有所帮助。