Как организовать хранение промежуточных данных при нескольких обращений ajax?

Всем привет! Помогите пожалуйста советом, как лучше хранить промежуточные данные. Смысл такой, что в интернет-магазине на странице выбора товара (в моем случае ткани) при щелчке на миниатюру товара, отправляется аjax запрос на сервер с параметрами, для выборки из базы данных:

$(document).ready(function() {
    $('#select-menu').find('a').click(function() {
        var itemData = $(this).attr('href');
        $.ajax({
            type: "POST",
            url: "cloth_data.php",
            data: itemData,
            cache: true,
            success:
                function processData(data) {
                    $(".ajax-loader").show().css("opacity", 1);
                    var img = $(data).find("figure").find("img").css("opacity", 0);
                    var clothImg = $(data).find(".clothImg").css("opacity", 0);
                    var title = $(data).find(".clothTitle");
                    var mnSelect = $(data).find(".mainSelect").attr('href');
                    var price = $(data).find(".itemPrice");
                    var debug = $(data).find(".debugItm");
                    img.on("load", function () {
                        setTimeout(function() {
                            $(".ajax-loader").css("opacity", 0);
                        }, 200);
                        setTimeout(function() {
                            $(".ajax-loader").hide();
                        }, 500);
                        $(this).css("opacity", 1);
                    });
                    clothImg.on("load", function () {
                        $(this).css("opacity", 1);
                    });
                    $("#item-wrapper").find(".main").replaceWith(img);
                    $(".price").show();
                    $(".clothImg").replaceWith(clothImg);
                    $(".itemPrice").replaceWith(price);
                    $(".clothTitle").replaceWith(title);
                    $(".selectBlock").show();
                    $(".mainSelect").attr('href', mnSelect);
                    $(".debugItm").replaceWith(debug);
                }
        });
        return false;
    });
});


Но необходимо выбрать ещё 2 типа ткани, помимо основной, чтобы сформировать заказ. Для этого нужно где-то хранить данные первого POST запроса и соответственно следующего. Я в обработчике поместил эти данные в $_COOKIE, но беда в том, что необходимо их тут-же вывести пользователю, в виде ответа от сервера, а без обновления страницы обработчика это не получается сделать. Может быть кто-нибудь знает способ как вывести данные из $_COOKIE без обновления страницы? Или какой-нибудь другой способ хранения? Спасибо заранее!
  • Вопрос задан
  • 694 просмотра
Решения вопроса 4
iiifx
@iiifx
PHP, OOP, SOLID, Yii2, Composer, PHPStorm
В сессию на бекенде? В localStorage на фронтенде?
Ответ написан
Adobe
@Adobe
php developer
Можно все данные в сессии хранить. JS вполне справляется с куками. В чем пробелма положить и тут же вывести. И почему вам нужно именно из куки зачитать только что положенное значение в форму. Кладите и в форму и в куку.
Ответ написан
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Если Вы показываете эти данные пользователю, то и храните в полях которые показываете пользователю, как value или data. Если все на ajax и страница не перегружается, зачем что-то еще придумывать? Или там миллион скрытых данных?
Ответ написан
@esvlad
Веб-разработчик
создавать куку средствами js
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы