Как реализовать стандартный блок для изменения количества товара с помощью плагина Pjax?
Как реализовать стандартный блок для изменения количества товара с помощью плагина Pjax?
Всем привет! Стоит задача, как реализовать стандартный блок <- текст +> для изменения количества товара с помощью плагина Pjax. Для простого js я нашёл решение, но для того, чтобы сделать подобное с jquery.pjax.js мне не хватает информации, т.е. я понимаю, что pjax - это плагин JQuery, знаю как формировать ссылки в контроллере, но для реализации, к примеру, уменьшения или увеличения числа, вводимого в поле input, передача в контроллер не имеет смысла, стало быть требуется использовать $.pjax.click. У меня сложность с тем, что из-за отсутствия подробного описания, я не понимаю, как мне реализовать эту задачу с помощью этого плагина? Если кто поделится ссылкой на более-менее исчерпывающую информацию ну или живые примеры с синтаксисом типа $.pjax.click - буду очень признателен
Re: Как реализовать стандартный блок для изменения количества товара с помощью плагина Pjax?
У тебя есть вывод товаров через GridView и ты хочешь менять количество выдаваемых товаров на странице?
Если так, то у тебя в модели поиска должно быть что-то типо такого. Тут константа ROWNUM = 20, в твоем случае передаешь параметр с формы (того же _search.php), обновляется GridView при помощи Pjax и вуаля
Если так, то у тебя в модели поиска должно быть что-то типо такого. Тут константа ROWNUM = 20, в твоем случае передаешь параметр с формы (того же _search.php), обновляется GridView при помощи Pjax и вуаля
Код: Выделить всё
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => self::ROWNUM,
],
'sort' => ['defaultOrder' => ['myfield' => SORT_ASC]],
]);
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Как реализовать стандартный блок для изменения количества товара с помощью плагина Pjax?
Вам не нужен pjax, поскольку state (адресная строка) у вас не меняется. Используйте ajax, с его помощью и экономней по ресурсам выйдет.
Re: Как реализовать стандартный блок для изменения количества товара с помощью плагина Pjax?
Похоже меня ни кто не понял: заходим в корзину с выбранными товарами -> выводятся товары списком и напротив каждого из них есть блок с двумя кнопками и полем input посередине: [-]количество этого товара[+]
С помощью ajax я такое сделал, но сейчас задача сделать то же но при помощи плагина pjax и в поисках теории я нашёл такой синтаксис
<script>
if ($.support.pjax) {
$(document).on('click', 'a[data-pjax]', function(event) {
var container = $(this).closest('[data-pjax-container]')
var containerSelector = '#' + container.id
$.pjax.click(event, {container: containerSelector})
})
}
</script>
но я не понимаю, как его заточить под мою задачу. Делаю магазин в первый раз и толком не знаю как люди поступают, но хотел бы отработать все варианты. В общем мне не хватает информации и примеров именно со скриптами, в которых применяется именно плагин pjax( то есть без захода в контроллер). Может кто разбирается, любая помощь - буду вам благодарен
С помощью ajax я такое сделал, но сейчас задача сделать то же но при помощи плагина pjax и в поисках теории я нашёл такой синтаксис
<script>
if ($.support.pjax) {
$(document).on('click', 'a[data-pjax]', function(event) {
var container = $(this).closest('[data-pjax-container]')
var containerSelector = '#' + container.id
$.pjax.click(event, {container: containerSelector})
})
}
</script>
но я не понимаю, как его заточить под мою задачу. Делаю магазин в первый раз и толком не знаю как люди поступают, но хотел бы отработать все варианты. В общем мне не хватает информации и примеров именно со скриптами, в которых применяется именно плагин pjax( то есть без захода в контроллер). Может кто разбирается, любая помощь - буду вам благодарен
-
- Сообщения: 910
- Зарегистрирован: 2019.08.13, 01:49
Re: Как реализовать стандартный блок для изменения количества товара с помощью плагина Pjax?
Похоже это вы не понимаете что такое pjax.
pjax = ajax + push state
У вас в корзине нет надобности в push state, поэтому у вас остается только ajax. Зачем же вы тащите туда pjax?
Ваш функционал реализуется ajax запросами в конроллер корзины, который возвращает обратно статус (успех/ошибка) и в случае успеха обновленные данные по корзине (сумма по строке, общая сумма), а в случае ошибки возвращает текст ошибки. Далее с помощью js устанавливаются изменившиеся данные в html корзины или выбрасывается ошибка.
pjax = ajax + push state
У вас в корзине нет надобности в push state, поэтому у вас остается только ajax. Зачем же вы тащите туда pjax?
Ваш функционал реализуется ajax запросами в конроллер корзины, который возвращает обратно статус (успех/ошибка) и в случае успеха обновленные данные по корзине (сумма по строке, общая сумма), а в случае ошибки возвращает текст ошибки. Далее с помощью js устанавливаются изменившиеся данные в html корзины или выбрасывается ошибка.