Pull to refresh

Comments 48

Из статьи так и не понял, это плагин для _чего_?
у меня jq с jQuery ассоциируется
jqGrid это плагин, работающий на jQuery.
Отличная статья, в избранное, спасибо!
Плагин действительно очень хороший и удобный. Единственное, что у меня не получилось — сделать редактирование и вставку новых записей в таблицы, которые выводятся с запросом JOIN — плагин просто не понимает что и куда вставлять) Кто-нибудь знает как это обойти?
Если логика получениея и вставки данных разная, то в файле edit.php (или аналогичным, который получает данные и вставляет в таблицы) можно написать инструкции отдельно для каждого параметра (если таблиц несколько):

$param — имя вставляемого параметра

Для первой таблицы:
$INSERT = «INSERT INTO `tale` SET `$_POST[$param]` = '$_POST[$param]'»

Для второй таблицы:
$INSERT = «INSERT INTO `tale2` SET `$_POST[$param2]` = '$_POST[$param2]'»

и т.д.

А если имена в подключаемых таблицах отличаются (например 'SELECT `a` as b ...')
То инструкцию можно заменить так:
Для второй таблицы:
$INSERT = «INSERT INTO `tale2` SET `a` = '$_POST['a']'»

Или еще проще в настройках jqGrid:
{name:'b', index:'a', width:100},
Описался немного:
$INSERT = «INSERT INTO `tale2` SET `a` = '$_POST['b']'»
Отлично, спасибо! Буду пробовать.
А то приходится руками отдельные формы для вставки данных писать, весьма утомительное и бесполезное занятие.
Реквестирую статью по теме :)
На мой взгляд, jqGrid — самый успешный и удобный на данный момент плагин для работы с таблицами БД в сети.

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

Да, и про dojo тоже.
Думаю про dojo не знают больше чем про ExtJS (Sencha)
Думаю, в данной статье имелся ввиду плагин именно для jQuery

PS: сам я пользую jQuery, и мне выше описанный плагин тоже нравится
PPS: возможно, и не jQuery единым, но как-то до dojo и ExtJS руки пока не дошли…
Да, все верно. Но если вы программируете на jQuery и не хотите систему нагружать другими фреймфорками, то jqGrid то что надо.

ExtJS это отдельный фреймворк, кстати, именно на нем работает CMS MODx Revolution.
Обращаю ваше внимание, что в статье слово jQuery употребляется только в исходниках.

Поэтому с тем же успехом можно сказать: если вы программируете на JavaScript и думаете, какой фреймворк выбрать для работы с таблицами, то стоит рассматривать фреймворк 1, фреймворк 2 и фреймворк 3.
В ExtJS черт ногу сломает. Очень-очень высокий порог вхождения.
UFO just landed and posted this here
GPLv3 афаик не запрещает использование кода в своем коммерческом проекте, если ваш проект только предоставляет сервис, и вы не распостраняете сам проект ни в каком виде.

Так что для своих коммерческих сайтов можно юзать.
Инициализатор грида в ExtJS будет на 2/3 идентичен тому, что приведен в примере. Не так там все страшно пока делаешь то, что от тебя ожидали разработчики из Sencha.
Да, но там до этого то инициализируй, то допиши, настрой сетку. Примеры есть, но они оторваны от общего контекста (скажем, есть примеры компонентов по отдельности, но нет примера как делать переключение компонентов, скажем, по клику на меню, что нужно в реальном приложении), сложно разбираться с нуля, особенно если английский знаешь на среднем уровне.
О, спасибо за ссылку на пример, как составлять сложные условия выборки
А можно организовать грид как на последнем скриншоте, только еще с горизнотальной полосой прокрутки? i.e. задать фиксированую шапку и столбец аля Excel?
Если задать виксированную высоту и добавить полосы прокрутки то все так и получится. Смотреть нужно в сторону css. А вот что такое столбце для excel я не понял.
В excel первая строка (по умолчанию буквы 'A'..'Z','AA'....) и столбец (Цифры '1','2','....') — фиксированые. Недавно понадобился такой же грид — много столбцов и первая колонка — фиксированая. Вот и спрашваю, получится ли такое с jqGrid.
Я не понял, потом что на последнем скриншоте форма поиска…
Можно, но с условием, что столбцов будет ограниченное количество (Штук 100 хватит?).
В настройка грида убрать подгон ширины и появится прокрутка.
Если нужны такие интерфейсы, может стоит смотреть в сторону ExtJs? Вопрос без подколки, мне действительно интересен ответ.
Блин спросонья не почитал все комменты — там это уже обсуждалось, my bad.
Может кому интересно:
Для jqGrid существует бесплатная PHP-библиотека, которая автоматизирует все необходимые функции, не ограничиваясь только выводом данных.

Документация здесь: jqgrid-php.net/
Пример с inline-поиском: jqgrid-php.net/examples/?render=jqOutSearch
Раз уж есть такая статья, может кто-то подскажет функциональный грид на jQuery с возможностью группировки колонок в шапке, изменением положения колонок на лету и хорошим строчным редактированием с поддержкой клавиатуры?
в datatables есть хорошая группировка с поддержкой сортировки + есть реордер колонок на лету.
а вот плагин редактирования лично мне не очень нравится, потому что кнопкой tab нельзя попасть в следующую ячейку, если уже находишься в режиме редактирования.
да, на скринах вижу, но на самом сайте читал, что автор отказался от colspan из-за проблем с сортировкой.
Что касается этого плагина:

В статье есть ссылка на примеры.

Зайдите сюда: «Row Editing» -> «Input types». Строчное редактирования с форматированием редактироуемых строк.

Также поддерживается изменение положений колонок и их размеров. Про группировку колонок не в курсе.

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

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

изменять порядок колонок можно динамически, но, имхо, drag-n-drop нет. хотя этот пункт не критичен.
Drag-n-drop — Есть. Совйство грида: "sortable: true".
Да, проверил только-что, работает правильно. Можно отследить событие и новый порядок колонок, что очень хорошо.
А по ссылке выше, обещали помочь с группировкой в шапке.
В целом этот грид наверное лучший из тех, что есть с такой лицензией.
Форма расширенного поиска — это треш еще тот. Неграмотный юзер ничего не поймет, грамотный предпочтет руками написать условие, вместо того чтобы путаться в 100 500 селектах. Ну Семен Семенович…

А по статье —может стоит перенести в блог «Школокод»?

> #grps1
> if (isset($_POST['filters'])) $filters = $_POST['filters']
> addslashes($rule->data);
> preg_replace('/-|\'|\"/', '', $rule->field) // backtick забыли, умники
> file.qip.ru

И в комментариях кто-то добавил:

> $INSERT = «INSERT INTO `tale2` SET `a` = '$_POST['a']'»

Только что читал сайт govnokod.ru, у меня почему-то ощущение что любой кусок кода из статьи можно было постить сразу туда.

Ничего личного по отношению к автору, просто не люблю такой стиль кодинга. Если вы хотите сделать мир лучше, поставьте минус статье.

p.s. Часть кода Хабра можно отправлять туда же — это же надо было в ajax-кнопках (кнопках! не ссылках!) додуматься написать href="#"
Нужно понимать, что habr это в первую очередь учебный материал, и чем больше он написан открытым и доступным языком, без использования завуалированных стогов переменных, тем лучше. А как алгоритм будет использован это уже на совести каждого.

И чтобы никто не пугался, отмечу, что Select тут всего один.
UFO just landed and posted this here
Вопрос честно говоря не очень понятен. Тебе нужно чтобы каждоя строка по нескольку раз выводилась?
UFO just landed and posted this here
UFO just landed and posted this here
Смотри событие в документации, после обновления таблицы. Далее с помощью jquery пиши функцию форматирования.
Например 123
Преобразуй в 12 3
Смотри событие в документации, после обновления таблицы. Далее с помощью jquery пиши функцию форматирования.
Например 123
Преобразуй в 12 3

Но это не идеально.е сли нужно еще редактировать. Можно сделать собственный div и заменять им тот формат. который предоставляет jqGrid, при клике по которому вызывать функции редактирования строк.
Вы издеваетесь, почему тег кода не работает))).
Короче разбей строку на 2 используя $('...').html();
Парни, подскажите, пожалуйста, по сортировке в jqGrid — есть столбец «Num» (например), как данные отсортировать так, чтобы сначала шли строки со значением 1,2,3,...20..50, а потом строки с пустым значением NUM.

Сейчас, просто напросто, если установить сортировку в ASC сначала идут записи с пустыми ячейками, а потом только с номера от 1 и далее.

Спасибо заранее.
Sign up to leave a comment.

Articles