CGridView. Часть вторая. AJAX.

В этой части я хочу рассказать о некоторых особенностях реализации AJAX запросов в компоненте CGridView.
Предположим, у нас есть таблица, и мы создали для неё модель и скрипты для выполнения CRUD операций (с помощью встроенного генератора Yii).
Пусть таблица называется countries, содержит список стран с двумя полями (id, name).
В этом случае, страница управления записями будет доступна адресу
Читать дальше »
Опубликовано в Ajax, PHP, Web разработка, Yii | View Comments
Ограничения фреймворков (на примере Yii)

О том, что фреймворки позволяют сократить время разработки, знают все. Но иногда при этом появляются самые неожиданные ограничения.
По-идее, так и должно быть. Каким бы универсальным не пытались сделать фреймворк разработчики, всегда чем-то приходится жертвовать. Точнее искать компромисс между количеством кода, который должен написать пользователь и гибкостью.
В этой статье я хочу показать пример такой ситуации, и, естественно, её решение.
Читать дальше »
Опубликовано в Ajax, HTML, JavaScript, PHP, Web разработка, Yii | View Comments
jQuery + плагины: сортировка и редактирование списка (часть вторая)

В прошлой статье я начал рассказывать о создании редактируемого html списка с возможностью сортировки записей. Мы рассмотрели структуру БД, создали страницу со списком, подключили JS скрипты и разобрали добавление записей.
Осталось немного доделать
Демо-версия находится здесь
Также вы можете скачать архив с этим примером
Удаление существующих записей
Читать дальше »
Опубликовано в Ajax, HTML, JavaScript, PHP, Web разработка | View Comments
jQuery + плагины: сортировка и редактирование списка

Довольно давно я написал статью о том, как с помощью библиотек Prototype и Scriptaculous добавить возможность редактирования и удаления записей обычному html списку (вообще-то это был цикл статей 1, 2, 3, 4, 5).
С тех пор несколько читателей просили доработать пример и добавить возможность сортировки записей.
Переделывать тот пример я не буду, т.к. Prototype сейчас практически не использую, лучше покажу, как решить задачу с помощью jQuery.
Сформулируем требования.
Необходимо создать html список с возможностями:
- изменение записей;
- удаление записей;
- изменение порядка записей.
Кроме того, необходимо предусмотреть возможность создания новых записей.
Читать дальше »
Опубликовано в Ajax, HTML, JavaScript, PHP, Web разработка | View Comments
jQuery плагин: создаём виджет для сообщений из списков twitter’а

Сегодня вряд ли у кого-то вызывает сомнения популярность твиттера, и многие блоггеры размещают в сайдбаре ленту сообщений с этого сервиса. Вообще, это хорошая идея, особенно если тематика сообщений в твиттере совпадает с тематикой блога, но её можно развить.
Думаю, вы уже фолловите людей, интересны которых совпадают с вашими, точнее с тематикой вашего блога. Думаю, посетителям будет гораздо интереснее читать тематические твиты, а не только ваши собственные. Кроме того, в этом случае виджет с твитами будет чаще обновляться.
Сделать это несложно. Добавляем подходящие twitter-ленты в отдельный список и публикуем его ленту. В этой статье я покажу, как создать такой виджет с помощью JavaScript.
Сразу даю ссылки на пример и архив с исходниками.
Читать дальше »
Опубликовано в Ajax, HTML, JavaScript, Web разработка | View Comments
Использование jqGrid вместе с Yii фреймворком

Приветствую всех!
В этой статье речь пойдёт о том как использовать Yii PHP framework и плагин к jQuery под названием jqGrid. Я не буду повторяться и рассказывать о том, что из себя представляют Yii и jqGrid и зачем они нужны. Вы легко найдёте все мои заметки на эту тему с помощью поиска по блогу
(кстати, все статьи о Yii вынесены в отдельный раздел).
Когда я проводил этот эксперимент, меня интересовали два момента:
1) подключение jgGrid;
2) преобразование данных, полученных с помощью CActiveDataProvider в формат понятный для jgGrid.
С первым пунктом всё более-менее понятно. jqGrid представляет собой набор JS и CSS файлов, которые нужно подключить к странице.
Читать дальше »
Опубликовано в Ajax, JavaScript, PHP, Web разработка, Yii | View Comments
Yii фреймворк: создание кнопок с помощью CButtonColumn

Тему этого поста подсказал мне читатель по имени Alex, за что ему большое спасибо.
Речь о компонентах zii, которые, начиная с версии 1.1, входят в состав фреймворка, и активно используются утилитой yiic при генерации кода.
К сожалению, документация по этим компонентам есть только в виде API (комментарии к исходникам) и её явно недостаточно.
Ситуация следующая. Если вас полностью устраивает код, который генерирует yiic – никаких проблем. Но вот что-то изменить или добавить какие-нибудь возможности уже сложнее.
Читать дальше »
Опубликовано в Ajax, JavaScript, PHP, Web разработка, Yii | View Comments
JavaScript без задержек

Название получилось довольно громкое
На самом деле эта статья не об устранении задержек, а скорее об изменении порядка загрузки и выполнения JS скриптов. Но с точки зрения посетителя некоторые задержки действительно исчезнут, точнее они будут там где он ожидает их увидеть
Я как-то путано рассказываю
, на самом деле все довольно просто.
Недавно на почтовом сервере ukr.net (в web интерфейсе) я заметил довольно неприятный баг. Загружается web интерфейс, я кликаю по письму и вместо сообщения «Загрузка данных…» вижу «Для просмотра письма включите поддержку JavaScript в браузере и перезагрузите страницу».
Естественно, я точно знаю, что JavaScript у меня включен и перезагружать ничего не стал. Через две-три секунды сообщение исчезло и на его месте появилось письмо.
Работу скриптов ukr.net я анализировать не стал, но в общем-то о причине можно догадаться. Скорее всего, возникла задержка при загрузке JS файла со скриптом, который должен изменять «Включите JS…» на «Загрузка данных..».
Раньше я этот момент не замечал, но у меня нет ограничений по скорости на UA-IX трафик, да и сам ukr.net стабильно работает.
Тем не менее, проблема со скоростью загрузки существует и касается всех, а не только крупных порталов.
Рассмотрим реальную ситуацию.
Читать дальше »
Опубликовано в Ajax, JavaScript, Web разработка | View Comments
jqGrid, форма с автозавершением и поиск

Сегодня будет еще один небольшой пример работы с jqGrid. Я покажу каким образом можно заполнить форму поиска значениями по-умолчанию.
Чтобы не придумывать лишнего я использую пример из предыдущей статьи. Напомню, у нас есть таблица и поле с автозаполнением. Посетитель вводит текст в поле и из предложенных вариантов выбирает подходящий. После этого автоматически выполняется поиск и обновление данных в таблице.
Схема простая и удобная, но ее может оказаться не достатчно если нужно проводить поиск одновременно по нескольким полям.
Поэтому мы немного усовершенствуем пример. После выбора значения в поле с автозаполнением мы откроем форму поиска и в неё вставим выбранное значение. Таким образом, если пользователю будет нужно добавить другие условия, он сможет это сделать.
Читать дальше »
Опубликовано в Ajax, JavaScript, Web разработка | View Comments
Управление jqGrid с помощью поля с автозавершением

Сегодня я продолжу рассказывать о плагине jqGrid и покажу еще один пример его использования.
Если не ошибаюсь, это уже 5-ый пост об этом плагине, поэтому я не буду останавливаться на его установке и настройке. Лучше приведу ссылки на предыдущие части:
1) Query Grid Plugin – "продвинутое" решение для создания таблиц
2) jqGrid: редактирование табличных данных с помощью inline редакторов
3) jqGrid – создание дополнительных кнопок
Но для тех, кто их не читал, кратко поясню, о чем вообще речь.
jqGrid – это плагин для библиотеки jQuery, предназначенный для работы с табличными данными. Он поддерживает кучу полезных возможностей вроде разбивки данных на страницы, поиска, добавления, удаления, редактирования записей и т.п.
Естественно, у плагина очень много настроек и вариантов использования, но это не означает, что их хватит на все случаи жизни
Например, раньше я рассказывал об использовании встроенной формы поиска jqGrid. Но иногда удобнее использовать отдельную форму, содержащую поля с автозавершением. Под ними по мере набора слова будут появляться варианты, а когда посетитель выберет один из них, то автоматически обновиться таблица с данными.
Как это работает, вы можете посмотреть на демо-страничке
либо скачать архив с примером и установить его на своем сервере
Реализовать такую систему не сложно.
Читать дальше »
Опубликовано в Ajax, HTML, JavaScript, MySQL, PHP, Web разработка | View Comments







