передача строки в opencart с помощью ajax - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть веб-сайт 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 голосов
/ 03 марта 2019

Так что я только что сделал это

в файле 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) {}
    });
});

и в файле catalog/controller/checkout/cart.php в строке 479 Я добавляю это

    public function addAll(){

        print_r($this->request->post);
    }

И я вижу это в своей консоли http://joxi.ru/krDlvPdfKGejar

Все, что я сделал, это исправил ваш код js.надеюсь, это поможет.

0 голосов
/ 01 марта 2019

Хорошо, исправлено, Ajax не был проблемой, он обращался к переменной со стороны сервера, поэтому я использовал $_POST вместо $this->request->post, и он работает нормально

...