Как вернуть контроллером в вид обработанные данные после ajax запроса?
Я новичок в программировании, прошу помощи:
Создаю интернет-магазин, в его функционале пытаюсь реализовать возможность фильтрации.
Алгоритм следующий:
- имеется вывод товаров на страницу view по категориям, у каждого товара есть бренд. Список брендов выводимых товаров высвечивается рядом, после нажатия на который, информация об этом бренде отправляется ajax get в controller/action. После принятия данных, я формирую новый список товаров и хочу render'ить его существующий вид view БЕЗ перезагрузки страницы. Только область выводимых товаров.
Creed1234, почти, только тут (return $newProducts) должна быть вюшка (view) в которой отрендерятся новые товары. B return тут не достаточно, нужно передать необходимые заголовки для ответа.
Какой фрейворк, движок на бекенде или самописный?
Вот с пониманием вьюшки и проблемма. Страница отображается category/view, которая рендерит все в view.
Ajax передает данные в category/brand. Вот тут то и непонятки. Что должен делать экшион brand с новыми данными, чтобы они попали в .product-container во вьюхе viev ?
public function actionView($category_id)
{
$category_id = (int)$category_id;
$productsToCategory = (new Product())->getQueryProductsToCategory($category_id);
return $this->render('view', compact('productsToCategory'));
$('.test').on('click', function () {
let selectBrand = document.querySelector('.select').value,
//тут получаю id категории и brand
$.ajax({
url:'/category/brand',
data: {brand: brand, id: id},
type: 'GET',
success: function (res) {
if(!res) alert('Ошибка фильтра бренда');
//что тут делать я не знаю
},
error: function () {
alert('Error');
}
});
return false;
});
public function actionBrand()
{
$brand = Yii::$app->request->get('brand');
$category_id = Yii::$app->request->get('id');
//тут формирую новый список товаров, а как вернуть во view не знаю =(