Передача массива значений из корзины в dompdf

231
01 сентября 2018, 00:00

Есть задача формировки Инвойса. Когда человек из корзины может сформировать счет по клику. Решил делать этим способом http://snipp.ru/view/132 . Библиотека dompdf. И нужно как то с корзины достать значения и передать их массивом, что бы образовался следующий массив.

$prods = array(
array(
    'name'  => 'Плита CERAMAGUARD FINE FISSURED (100 RH) 600*600*15',
    'count' => 25.3,
    'unit'  => 'м2',
    'price' => 1210,
    'nds'   => 18,
),
array(
    'name'  => 'Европодвес (0.5м)',
    'count' => 100,
    'unit'  => 'шт.',
    'price' => 5.50,
    'nds'   => 0,
),  
array(
    'name'  => 'Профиль 20*20',
    'count' => 10,
    'unit'  => 'м',
    'price' => 550,
    'nds'   => 10,
),

);

Чем больше добавляется товаров в корзину тем больше создается массивов внутри массива $prods = array.

JS корзина

var cart = store('cart');
    var color = $item.find('.prices').attr('active-color');
    var type = $item.find('.prices').attr('active-type');
    var $color = $item.find('.prices .color-'+color);
    var price = $color.attr(type)*1;
    $item.find('.price-num').html(price);
    if ($item.attr('area') == 3) {
        $item.find('.current-choice').html('Колормикс');
    }else{
        $item.find('.current-choice').html($color.attr('color_title')+', '+types_translate[type]);
    }
    cart[$item.find('.id').html()] = {
        count: $item.find('.count').val()*1,
        item: $item[0].outerHTML
    };
    store('cart',cart);
    cartInit();
    cartAdded($item);
}
function cartRemove (id){
    var cart = store('cart');
    delete cart[id];
    store('cart',cart);
    cartInit();
    cartShow();
}
function cartPlus (id){
    var cart = store('cart');
    cart[id].count++;
    store('cart',cart);
    cartInit();
    cartShow();
}
function cartChange (id,value){
    var cart = store('cart');
    cart[id].count = value*1;
    store('cart',cart);
    cartInit();
    cartShow();
}
function cartMinus(id){
    var cart = store('cart');
    if (cart[id].count > 1) {
        cart[id].count--;
    }else{
        delete cart[id];
    }
    store('cart',cart);
    cartShow();
    cartInit();
}
function cartSend (){
    var cart = store('cart');
    if ($.isEmptyObject(cart)) {return false;}
    var title = 'оформить';
    if ($(".cart-window [name=phone]").val().length > 6) {
        var order = {user: {},cart:[]};
        var types_translate =
            {'full_gray':'полный прокрас, серый цемент',
                'partial_gray':'частичный прокрас, серый цемент',
                'full_white':'полный прокрас, белый цемент',
                'partial_white':'частичный прокрас, белый цемент'
            };
        for (var item in cart){
            var $title = $($(cart[item].item).find('h3')[0].outerHTML);
            $title.find('.current-choice').remove();
            order.cart.push({
                item: item,
                title: $title.html(),
                text: $(cart[item].item).find('.current-choice').html(),
                price: $(cart[item].item).find('.price-num').html(),
                count: cart[item].count
            });
        }

        $('.cart-window form').find('input,textarea').each(function(n, el) {
            order.user[$(el).attr('name')] = $(el).val();
        });
        store('user',order.user);
        $(".send-order").removeClass('send-error').addClass('send-sending').html('отправляем...');
        goal('send_btn');
        $.post("/ajax/order/", order, function(json) {
            $(".send-order").removeClass('send-sending').removeClass('send-error').html('отправлено');
            $(".address-tab").fadeOut(300,function(){$(".result-tab").fadeIn(300);});
                setTimeout(function(){$.fancybox.close( true )},10000);
                cart = {};
                store('cart', cart);
                cartShow();
                cartInit();
        }, "json");
    }else{
        $(".send-order").removeClass('send-sending').addClass('send-error').html('укажите телефон');
        setTimeout(function(){
            $(".send-order").removeClass('send-sending').removeClass('send-error').html(title);
        }, 3000);
    }
};

Собственно, в корзине будет ссылка на php файл, в котором есть сверстанный счет, и нужно что бы приходил туда массив такого вида как указанно выше.

Спасибо большое за помощь!

READ ALSO
поиск по mysql дереву

поиск по mysql дереву

подскажите как найти в дереве начиная с parent_id=2 все дочерние строки, у которых parent_id нет одинаковых?

213
Сортировка ksort()

Сортировка ksort()

Задача - переназначить ключи в массиве и отсортировать массив по вновь назначенным ключамЯ новичок в php поэтому для переназначения выбрал,...

156
Как получить файлы из корня сервера?

Как получить файлы из корня сервера?

Есть indexphp расположенный по такому пути: /home/user/web/example

169
Zend-log - как исправить ошибку при записи бд?

Zend-log - как исправить ошибку при записи бд?

Пробую использовать этот компонент в своём проекте

189