Всем привет!
Есть код:
<?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">