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

Как доставать id input, только у тех, где указан selected?

Всем привет!

Есть код:
<?php
    foreach($product->size as $post) {
    echo "<input class=\"dib size\" to=\"id\" id=\"size\" value=\"{$post->size_p}\">";
   }
?>


Есть js добавления в корзину:
$('.add-to-cart').on('click', function (e) {
        e.preventDefault();
        var id = $(this).data('id'),
            size = $('#size').val(),
            qty = $('#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!');
            }
        });
    });


Есть модель Cart
public function addToCart($product, $qty = 1, $size){
        $mainImg = $product->getImage();
        if(isset($_SESSION['cart'][$product->id])){
            $_SESSION['cart'][$product->id]['qty'] += $qty;
        }else{
            $_SESSION['cart'][$product->id] = [
                'qty' => $qty,
                'size' => $size,
                'name' => $product->name,
                'price' => $product->price,
                'img' => $mainImg->getUrl('x50')
            ];
        }
    }


и конечно же контроллер

public function actionAdd(){
        $id = Yii::$app->request->get('id');
        $qty = (int)Yii::$app->request->get('qty');
        $qty = !$qty ? 1 : $qty;
        $size = (int)Yii::$app->request->get('size');
        $size = !$size ? 1 : $size;
        $product = Product::findOne($id);
        if(empty($product)) return false;
        $session =Yii::$app->session;
        $session->open();
        $cart = new Cart();
        $cart->addToCart($product, $qty, $size);
        if( !Yii::$app->request->isAjax ){
            return $this->redirect(Yii::$app->request->referrer);
        }
        $this->layout = false;
        return $this->render('cart-modal', compact('session'));
    }


Как доставать id="size" только у тех input, где указан selected?

<input class="dib size" id="size" to="id" value="777">


тык:
<input class="dib size selected" id="size" to="id" value="777">
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
Morfeey
@Morfeey
$('.selected').attr('id'); // resuilt is: "size"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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