В этой части я хочу рассказать о некоторых особенностях реализации AJAX запросов в компоненте CGridView. Предположим, у нас есть таблица, и мы создали для неё модель и скрипты для выполнения CRUD операций (с помощью встроенного генератора Yii). Пусть таблица называется countries, содержит список стран с двумя полями (id, name). В этом случае, страница управления записями будет доступна адресу index. php? r=countries/admin В нижней части страницы находится пагинатор (листалка). Клик по ссылке с номером страницы приведет к отправке ajax запроса. Но вот тут появляется одна из особенностей. Этот ajax запрос возвращает не только новую страницу с данными, но и всю страницу целиком. Начиная от doctype и заканчивая закрывающим тегом html. Если на странице ничего, кроме таблицы нет, то это не проблема. Но если мы разместим на ней несколько виджетов, для формирования которых нам потребуется выполнить дополнительные запросы к БД, то смысла в такой ajax пагинации окажется немного. В общем, нужно, чтобы при клике на номер страницы сервер отправлял только фрагмент разметки с таблицей. Сделать это несложно. Для начала вынесем из представления views/countries/admin. php код, который выполняет формирование таблицы в отдельный файл – views/countries/admingrid. php. Речь идет об этом фрагменте
Понравилась статья? Получай обновления и будь всегда в курсе событий!