Encoderast
@Encoderast
frontend пытается что-то делать в backend

Как достать нужный размер по товару?

Всем привет!

Вот так выглядит страница
5b471230c70ab989354655.jpeg

кнопки выбора размера:
<input type="radio" class="size" id="1" checked name="<?= $one->id ?>" value="31"/>
<label for="1">  31 см</label>
                                    
<input type="radio" class="size" id="2"  name="<?= $one->id ?>" value="50"/>
<label for="2">  50 см</label>


js
$('.add-to-cart').on('click', function (e) {
        e.preventDefault();
        var id = $(this).data('id'),
            size = $("input[type=\"radio\"]:checked.size").attr("value"),
            qty = $(this).prev('.js-qty').val();
        $.ajax({
            url: '/cart/add',
            data: {id: id, qty: qty, size: size},
            type: 'GET',
            success: function(res){
                if(!res) alert('Ошибка!');
                showCart(res);
            },
            error: function(){
                alert('Error!');
            }
        });
    });


проблема в том что значение SIZE достается только исходя из значений первого товара, а у остальных выбирай не выбирай, все равно будут такие же как и на первом

Что надо тут дописать
size = $("input[type=\"radio\"]:checked.size").attr("value"),
чтоб доставались значения по нужному товару?
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
size = $(this).siblings().find("input[type=\"radio\"]:checked.size").attr("value"),

Но мне кажется проще и правильнее было бы формами сделать. Вообще вешать какие-то действия на классы не правильно. Лучше или id использовать или data аттрибуты. Например вместо
$('.add-to-cart').on('click'
делать
$('[data-toggle="addToCart"]').on('click'
И если не в форме, то проставлять какой-нибудь data-item-id, что бы потом siblings не юзать ибо это дает зависимость от верстки. Но форма лучше.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы