Хочу добавить новую колонку "Количество" в таблицу GridView. В этой колонке должен показываться "input", который и будет принимать количество и передавать их в корзину по нажатии кнопки "Купить".
1) Прошу Вас посмотрите правильно ли я реализовал поле input в GridView.
2) У меня в таблице товара есть 2 колонки первая Количество с input, а вторая колонка называется Купить с кнопкой. Кнопка "Купить" добавляет товар в корзину через Ajax и она 100% рабочая. Но хочу реализовать, чтобы и количество клиент сразу вводил перед добавлением товара в корзину. А с этим беда при передаче данных через Ajax количество из input не попадает в корзину и хоть тресни - не знаю что делать...
Код колонки "Количество" с полем Input: ПРОШУ Проверьте
Код: Выделить всё
[
'label'=>'Кол-во',
'format'=>'raw',
'headerOptions' => ['width' => '50'],
'value' => function($model, $key, $index, $column){
return Html::input(
'text', 'кол-во',
$value = '1',
[
'class' => 'qty',
'id' => $model->id,
'data-pjax'=>true,
'action'=>Url::to(['cart/add']),
'style' => 'width:40px; border-radius:1px;padding-left:3px;',
]);
}
],
Код: Выделить всё
<input type="text" id="271" class="qty" name="кол-во" value="1" action="/cart/add" data-pjax="" style="width:40px; border-radius:1px;padding-left:3px;">
Код: Выделить всё
[
'header'=>'Купить',
'format' => 'raw',
'value' => function($model, $key, $index, $column) {
return Html::a(
'<i class="fa fa-shopping-cart"> Купить</i>',
Url::to(['cart/add', 'id' => $model->id]),
[
'data-id' => $model->id,
'data-pjax'=>true,
'action'=>Url::to(['cart/add']),
'class'=>'btn-sm btn-success gridview-add-to-cart',
]
);
}
],
Код: Выделить всё
$('body').on('click', '.gridview-add-to-cart', function (e) {
e.preventDefault();
var id = $(this).data('id'),
qty = $('#qty').val();
$.ajax({
url: '/cart/add',
data: {id: id, qty: qty},
type: 'GET',
success: function(res){
if(!res) alert('Данные не верны!');
showCart(res);
},
error: function(){
alert('Ошибка!');
}
});
});
Код: Выделить всё
<span>
<a href="<?= \yii\helpers\Url::to(['cart/add', 'id' => $product->id])?>" data-id="<?= $product->id?>" class="add-to-cart-button">
<i class="fa fa-cart-plus"></i> Купить</a><br>
<b>Количество:</b> <input type="text" value="1" class="qty" id="qty" />
</span>