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

25 июля, 2010
yii grid view

В этой части я хочу рассказать о некоторых особенностях реализации AJAX запросов в компоненте CGridView.

Предположим, у нас есть таблица, и мы создали для неё модель и скрипты для выполнения CRUD операций (с помощью встроенного генератора Yii).

Пусть таблица называется countries, содержит список стран с двумя полями (id, name).

В этом случае, страница управления записями будет доступна адресу
Читать дальше »

Опубликовано в Ajax, PHP, Web разработка, Yii | View Comments

Ограничения фреймворков (на примере Yii)

31 мая, 2010
yii php framework autocomplete

О том, что фреймворки позволяют сократить время разработки, знают все. Но иногда при этом появляются самые неожиданные ограничения.

По-идее, так и должно быть. Каким бы универсальным не пытались сделать фреймворк разработчики, всегда чем-то приходится жертвовать. Точнее искать компромисс между количеством кода, который должен написать пользователь и гибкостью.

В этой статье я хочу показать пример такой ситуации, и, естественно, её решение.
Читать дальше »

Опубликовано в Ajax, HTML, JavaScript, PHP, Web разработка, Yii | View Comments

jQuery + плагины: сортировка и редактирование списка (часть вторая)

25 апреля, 2010
jquery sortable

В прошлой статье я начал рассказывать о создании редактируемого html списка с возможностью сортировки записей. Мы рассмотрели структуру БД, создали страницу со списком, подключили JS скрипты и разобрали добавление записей.

Осталось немного доделать ;)

Демо-версия находится здесь

демонстрационный пример

Также вы можете скачать архив с этим примером

архив с исходным кодом

Удаление существующих записей
Читать дальше »

Опубликовано в Ajax, HTML, JavaScript, PHP, Web разработка | View Comments

jQuery + плагины: сортировка и редактирование списка

23 апреля, 2010
jquery sortable

Довольно давно я написал статью о том, как с помощью библиотек Prototype и Scriptaculous добавить возможность редактирования и удаления записей обычному html списку (вообще-то это был цикл статей 1, 2, 3, 4, 5).

С тех пор несколько читателей просили доработать пример и добавить возможность сортировки записей.

Переделывать тот пример я не буду, т.к. Prototype сейчас практически не использую, лучше покажу, как решить задачу с помощью jQuery.

Сформулируем требования.

Необходимо создать html список с возможностями:

- изменение записей;
- удаление записей;
- изменение порядка записей.

Кроме того, необходимо предусмотреть возможность создания новых записей.
Читать дальше »

Опубликовано в Ajax, HTML, JavaScript, PHP, Web разработка | View Comments

jQuery плагин: создаём виджет для сообщений из списков twitter’а

28 марта, 2010
jquery twitter widget

Сегодня вряд ли у кого-то вызывает сомнения популярность твиттера, и многие блоггеры размещают в сайдбаре ленту сообщений с этого сервиса. Вообще, это хорошая идея, особенно если тематика сообщений в твиттере совпадает с тематикой блога, но её можно развить.

Думаю, вы уже фолловите людей, интересны которых совпадают с вашими, точнее с тематикой вашего блога. Думаю, посетителям будет гораздо интереснее читать тематические твиты, а не только ваши собственные. Кроме того, в этом случае виджет с твитами будет чаще обновляться.

Сделать это несложно. Добавляем подходящие twitter-ленты в отдельный список и публикуем его ленту. В этой статье я покажу, как создать такой виджет с помощью JavaScript.

Сразу даю ссылки на пример и архив с исходниками.
Читать дальше »

Опубликовано в Ajax, HTML, JavaScript, Web разработка | View Comments

Использование jqGrid вместе с Yii фреймворком

18 марта, 2010
yii php jqgrid

Приветствую всех!

В этой статье речь пойдёт о том как использовать 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

27 февраля, 2010
yii php CButtonColumn

Тему этого поста подсказал мне читатель по имени Alex, за что ему большое спасибо.

Речь о компонентах zii, которые, начиная с версии 1.1, входят в состав фреймворка, и активно используются утилитой yiic при генерации кода.

К сожалению, документация по этим компонентам есть только в виде API (комментарии к исходникам) и её явно недостаточно.

Ситуация следующая. Если вас полностью устраивает код, который генерирует yiic – никаких проблем. Но вот что-то изменить или добавить какие-нибудь возможности уже сложнее.
Читать дальше »

Опубликовано в Ajax, JavaScript, PHP, Web разработка, Yii | View Comments

JavaScript без задержек

22 декабря, 2009
javascript load delays

Название получилось довольно громкое :) На самом деле эта статья не об устранении задержек, а скорее об изменении порядка загрузки и выполнения JS скриптов. Но с точки зрения посетителя некоторые задержки действительно исчезнут, точнее они будут там где он ожидает их увидеть ;)

Я как-то путано рассказываю :) , на самом деле все довольно просто.

Недавно на почтовом сервере ukr.net (в web интерфейсе) я заметил довольно неприятный баг. Загружается web интерфейс, я кликаю по письму и вместо сообщения «Загрузка данных…» вижу «Для просмотра письма включите поддержку JavaScript в браузере и перезагрузите страницу».

Естественно, я точно знаю, что JavaScript у меня включен и перезагружать ничего не стал. Через две-три секунды сообщение исчезло и на его месте появилось письмо.

Работу скриптов ukr.net я анализировать не стал, но в общем-то о причине можно догадаться. Скорее всего, возникла задержка при загрузке JS файла со скриптом, который должен изменять «Включите JS…» на «Загрузка данных..».

Раньше я этот момент не замечал, но у меня нет ограничений по скорости на UA-IX трафик, да и сам ukr.net стабильно работает.

Тем не менее, проблема со скоростью загрузки существует и касается всех, а не только крупных порталов.

Рассмотрим реальную ситуацию.
Читать дальше »

Опубликовано в Ajax, JavaScript, Web разработка | View Comments

jqGrid, форма с автозавершением и поиск

22 ноября, 2009
jqgrid search_autocomplete

Сегодня будет еще один небольшой пример работы с jqGrid. Я покажу каким образом можно заполнить форму поиска значениями по-умолчанию.

Чтобы не придумывать лишнего я использую пример из предыдущей статьи. Напомню, у нас есть таблица и поле с автозаполнением. Посетитель вводит текст в поле и из предложенных вариантов выбирает подходящий. После этого автоматически выполняется поиск и обновление данных в таблице.

Схема простая и удобная, но ее может оказаться не достатчно если нужно проводить поиск одновременно по нескольким полям.

Поэтому мы немного усовершенствуем пример. После выбора значения в поле с автозаполнением мы откроем форму поиска и в неё вставим выбранное значение. Таким образом, если пользователю будет нужно добавить другие условия, он сможет это сделать.
Читать дальше »

Опубликовано в Ajax, JavaScript, Web разработка | View Comments

Управление jqGrid с помощью поля с автозавершением

17 ноября, 2009
jqGrid_autocomplete

Сегодня я продолжу рассказывать о плагине jqGrid и покажу еще один пример его использования.

Если не ошибаюсь, это уже 5-ый пост об этом плагине, поэтому я не буду останавливаться на его установке и настройке. Лучше приведу ссылки на предыдущие части:

1) Query Grid Plugin – "продвинутое" решение для создания таблиц

2) jqGrid: редактирование табличных данных с помощью inline редакторов

3) jqGrid – создание дополнительных кнопок

4) jqGrid – поиск данных

Но для тех, кто их не читал, кратко поясню, о чем вообще речь.

jqGrid – это плагин для библиотеки jQuery, предназначенный для работы с табличными данными. Он поддерживает кучу полезных возможностей вроде разбивки данных на страницы, поиска, добавления, удаления, редактирования записей и т.п.

Естественно, у плагина очень много настроек и вариантов использования, но это не означает, что их хватит на все случаи жизни ;)

Например, раньше я рассказывал об использовании встроенной формы поиска jqGrid. Но иногда удобнее использовать отдельную форму, содержащую поля с автозавершением. Под ними по мере набора слова будут появляться варианты, а когда посетитель выберет один из них, то автоматически обновиться таблица с данными.

Как это работает, вы можете посмотреть на демо-страничке

демонстрационный пример

либо скачать архив с примером и установить его на своем сервере

архив с исходным кодом

Реализовать такую систему не сложно.
Читать дальше »

Опубликовано в Ajax, HTML, JavaScript, MySQL, PHP, Web разработка | View Comments