Создание динамичной области на JS

YII 2

Есть 3 странички: Страница с товаром, страница корзины и страница бэкенда (action). Товар, при нажатии на кнопку, добавляется в LocalStorage. К кнопке добавления подвязан ID, который берётся из БД. Затем код на JS берёт значение ID и передаёт его ajax'ом на бэкенд, где получается экшеном. Проблема в том, что получив данные, бекенд их не отрисовывает обратно в корзине. Подсказали, что нужно прописать в корзине динамическую область, где будет выводиться список получившихся значений из бэкенда.

Код бэкенда. Получает id из js кода и выводит на страницу корзины переменную с данными ($id_prod)

public function actionJsonans($data_id_prod)
    {
//            \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

            $id_prod = Products::find($data_id_prod)
                ->select([
                    'product_name',
                    'product_price'
                ])
                ->where([
                    'ID' => $data_id_prod
                ])
                ->one();
//            var_dump($id_prod);
//            return;
            return $this->render('Basket', ['id_prod' => $id_prod]);
    }

Код JS скрипта. Отправляет ajax'ом переменную со значением из LocalStorage.

let data_id_prod = localStorage.getItem('id');
console.log(data_id_prod);

if (data_id_prod === '0') {
    alert("Корзина пуста");
}
else if (data_id_prod > '0') {
    $.ajax({
        method: "POST",
        url: "http://frontend/jsonans/" + data_id_prod,
        data:  {$data_id_prod: data_id_prod},
        /*    success: function(response)
            {
                alert(response);
            }*/
    });
}

Ну и код корзины. К ней нужно подключить динамическую область на JS. А в гугле что-т не особо смог найти подобное.

<h1>Ваша Корзина:</h1>
<h2><div class="out"></div></h2>

<div>
    <p><h6><?=Html::encode($id_prod->product_name)?> | <?=Html::encode($id_prod->product_price)?></h6></p>

</div>

Ответы (1 шт):

Автор решения: WinterSilence

LocalStorage недоступен напрямую в php скрипте, для хранения используй COOKIE. При добавлении товара в корзину JS'ом ты добавляешь COOKIE и по необходимости обновляешь блок Корзины (layout страниц). Список товаров на странице корзины строится на основе переданных COOKIE. Никаких AJAX запросов при добавлении в корзину не требуется.

→ Ссылка