Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 17.05.2016 15:07:22

Laravel 5.2 b cookie на стороне клента

Добрый день помогите с кодом.
захотел продублировать корзину как у него
но к меня табличный вывод(хотя думаю это не особо принципиально)
адрес страницы на которой они должны создаваться /catalog
в blade прописано

<table class="table table-bordered table-striped table-condensed flip-content" >
                            <thead>
                            <tr>

                                <th>Категория</th>
                                <th>Vin</th>
                                <th>Аналог</th>
                                <th>Название</th>
                                <th>Цена</th>
                                <th>Количество</th>
                                <th>Статус</th>
                                <th>Actions</th>
                            </tr>
                            </thead>
                            <tbody>
                            @foreach ($catalogs as $catalog)
                                <tr>
                                    <td>{!! $catalog->category->name !!}</td>
                                    <td><span class="vin">{!! $catalog->vin !!}</span></td>
                                    <td >{!! $catalog->analog_vin !!}</td>
                                    <td><span class="title">{!! $catalog->title !!}</span></td>
                                    <td><span class="price">{!! $catalog->price !!}</span></td>
                                    <td>{!! $catalog->number !!}</td>
                                    <td>{!! $catalog->status !!}</td>
                                    <td>
                                        <a href="#" class="btn btn-primary buy-btn" id="{{$catalog->id}}" role="button">Купить</a>
                                    </td>
                                </tr>
                            @endforeach

                            </tbody>

                        </table>

в подключаемом js

$('.buy-btn').click(function()
{
    catalog_id=parseInt($(this).attr('id')); //получаем id товара
    price=parseInt($(this).parent().prev().children().html()); //получаем цену товара и преобразуем значение в число parseInt
    vin=$(this).parent().prev().children().html(); //получаем номер
    title=$(this).parent().parent().children().html(); //название товара
//теперь нужно узнать есть ли в куках уже такой товар
    order=$.cookie('basket'); //получаем куки с именем basket
    !order ? order=[]: order=JSON.parse(order);
    if(order.length==0)
    {
        order.push({'catalog_id': catalog_id, 'price':price, 'amount':1, 'vin':vin, 'title':title},{ expires: 7, path: '/catalog' });//добавляем объект к пустому массиву
    }
    else
    {
        flag=false; //флаг, который указывает, что такого товара в корзине нет
        for(var i=0; i<order.length; i++) //перебираем массив в поисках наличия товара в корзине
        {
            if(order[i].catalog_id==catalog_id)
            {
                order[i].amount=order[i].amount+1; //если товар уже в корзине, то добавляем +1 к количеству (amount)
                flag=true; //поднимаем флаг, что такой товар есть и с ним делать ничего не нужно
            }

        }

        if(!flag) //если флаг опущен, значит товара в корзине нет и его надо добавить.
        {
            order.push({'catalog_id': catalog_id, 'price':price,'amount':1,'vin':vin,'title':title}); //добавляем к существующему массиву новый объект
        }
    }
    $.cookie('basket',JSON.stringify(order)); // переделываем массив с объектами в строку и сохраняем в куки
    count_order(); //запускаем функция для отображения количества заказов, текст функции напишу ниже.

});

но кука Basket не создается вообще.
как правильно переписать скрипт, скорей всего строки

    catalog_id=parseInt($(this).attr('id')); //получаем id товара
    price=parseInt($(this).parent().prev().children().html()); //получаем цену товара и преобразуем значение в число parseInt
    vin=$(this).parent().prev().children().html(); //получаем номер
    title=$(this).parent().parent().children().html(); //название товара

Не в сети

#2 17.05.2016 23:50:46

Re: Laravel 5.2 b cookie на стороне клента

Вы подключили js, как в статье написано <script src="{{asset("js/jquery.cookie.js")}}"></script>?
Я так понимаю тут стандартный для jquery плагин работы с куками подключается (никаких проблем быть не должно), скачайте его, подключите и сохраняйте/удаляйте данные в нём типа:
$.cookie('basket', JSON.stringify(order), { path: '/' })
а не:
$.cookie('basket',JSON.stringify(order));
Вообще смотрите по ситуации, какие там у вас требования ).

Не в сети

#3 18.05.2016 09:13:28

Re: Laravel 5.2 b cookie на стороне клента

123 пишет:

Вы подключили js, как в статье написано <script src="{{asset("js/jquery.cookie.js")}}"></script>?
Я так понимаю тут стандартный для jquery плагин работы с куками подключается (никаких проблем быть не должно), скачайте его, подключите и сохраняйте/удаляйте данные в нём типа:
$.cookie('basket', JSON.stringify(order), { path: '/' })
а не:
$.cookie('basket',JSON.stringify(order));
Вообще смотрите по ситуации, какие там у вас требования ).

Привет, конечно подключил. пробовал и старую и новую версии, но он просто не создает куку basket

Не в сети

#4 19.05.2016 09:33:39

Re: Laravel 5.2 b cookie на стороне клента

Т.е проблема с плагином кук? И ошибок никаких не выдаёт (пробывали создать с помощью него какуето куки сразу после загрузки страницы?)? Плагин то нормальный, сам иногда его использовал, очень странная ситуация

Не в сети

Подвал раздела