jqGridPHP - таблицы на ajax без головной боли

acanthis

Новичок
такс...а попробуйте вручную сделать запрос с данными из формы
 

klev2004

Новичок
INSERT INTO `LoaderSession`(`Session4`, `Key32`, `Created`, `Expired`) VALUES ('abcd','12345678901234567890123456789012',1234567,1234567)
Нормально ушло.
Может быть значение Session4 не обрамляется кавычками? Тогда почему при определении этой переменной какого-либо значения в функции operData данные нормально уходят?
 

acanthis

Новичок
INSERT INTO `LoaderSession`(`Session4`, `Key32`, `Created`, `Expired`) VALUES ('abcd','12345678901234567890123456789012',1234567,1234567)
Нормально ушло.
Может быть значение Session4 не обрамляется кавычками? Тогда почему при определении этой переменной какого-либо значения в функции operData данные нормально уходят?
попробуйте заэкранировать в кавычки
 

klev2004

Новичок
В operData переменная $data['Session4'] приходит уже пустой.
PHP:
$data['Session4'] = '\'' . $data['Session4'] . '\''; // в БД уходят одни кавычки :)
 

acanthis

Новичок
очень странно, проверьте названия полей, может опечатались где
 

klev2004

Новичок
очень странно, проверьте названия полей, может опечатались где
Я тоже так думал пока не стал многократно менять названия полей в форме и в БД. Очень странная ситуация.
Спасибо за помощь. Как разберусь в причине - обязательно опишу решение проблемы.
 

klev2004

Новичок
Как я понял, ему не хватало поля Id.
Проблему решил таким образом:
добавил в БД автоинкрементное поле Id. В коде сделал это поле скрытым:
PHP:
        $this->cols = array(
            'id'      =>array('label' => 'Id',
                                'width' => 100,
                                'hidden'=> true,
                                'editable' => true,
                                ),
         ...
 

acanthis

Новичок
Кто-нибудь пробывал на форме ввода записи сделать комбобокс с автокомплитом, как тут?
 

klev2004

Новичок
Как в форме добавления новой записи скрыть поля?
То есть в таблице они отображаться должны, а вот в форме добавления - не должны.

И как правильно вставить в форму добавления выпадающий список. Руководствовался инструкциями отсюда - trirand.com/jqgridwiki/doku.php?id=wiki:common_rules
что-то делаю не так, вместо списка вижу обычный input с содержимым: [object Object] ?
 

acanthis

Новичок
Как в форме добавления новой записи скрыть поля?
То есть в таблице они отображаться должны, а вот в форме добавления - не должны.
PHP:
'id'         => array('label' => 'id',
                                   'width' => 10,
                                   'editable' => false,
                                   ),
И как правильно вставить в форму добавления выпадающий список.
Как вариант в свойство поля добавить:
PHP:
...
'edittype'    => 'select',
'editoptions' =>  array('value'=> new jqGrid_Data_Value(array(0 => "Нет" , 1 => "Да"))),
...
Однако, есть и иные способы формирования селекта, например, запросами из таблицы.
 

acanthis

Новичок
Вопрос на засыпку: можно ли как то вывести несколько гридов на одной странице?
 

~WR~

Новичок
Можно.
Если гриды одного класса, то им следует указать уникальный суффикс, чтобы отличать один от другого.

В последней версии есть два способа:
1. Указать в $this->render_suffix_col имя колонки, из которой напрямую брать суффикс.
2. Перегрузить функцию renderGridSuffix и сделать там более сложную логику, если это необходимо.
 

scorpion-ds

Новичок
Решил попробовать в своем проекте использовать данную библиотеку, но столкнулся с такой проблемой.

Сам грид успешно формируется, далее я ему изменил метод "renderGridUrl", что бы задавать другой URL, так как у меня ZF, при этом судя по firebag, ответ приходит в виде JSON массива и он корректный, но тем не менее в консоль получаем ошибку:
TypeError: b.isEmptyObject is not a function
[Прерывать на этой ошибке]

...y("style")){d=d+f.style;delete f.style}if(f.hasOwnProperty("class")){e=e+(" "+f[...

jquery....min.js (строка 50)
грид при этом замирает на стадии "Загрузка ...", если для эксперимента вместо ответа передавать пустой массив, то такой ошибки не возникает.
 

~WR~

Новичок
А какие версии jQuery и jqGrid используется?
Вероятно, jQuery младше 1.4.
 

acanthis

Новичок
Можно.
Если гриды одного класса, то им следует указать уникальный суффикс, чтобы отличать один от другого.

В последней версии есть два способа:
1. Указать в $this->render_suffix_col имя колонки, из которой напрямую брать суффикс.
2. Перегрузить функцию renderGridSuffix и сделать там более сложную логику, если это необходимо.
Это вы про вложенные гриды? Я имел ввиду, допустим, два грида рядом друг с другом... Если честно не много не понял что делать с этим суффиксом...
 

~WR~

Новичок
Это вы про вложенные гриды?
Без разницы. Вложенный грид - это частный случай двух гридов на странице.

Общее требование jqGrid таково, что у каждого грида на странице должен быть уникальный id.
jqGridPHP по умолчанию ставит id грида от имени класса.
Если гридов одного класса несколько, то к id следует добавить уникальный суффикс.

Проще говоря, есть класс myGrid.
На странице нужно показать два таких грида - один для user_id=1, второй для user_id=2.
Тогда суффиксом становится поле user_id, а id гридов будут: #myGrid1, #myGrid2.
 

scorpion-ds

Новичок
А какие версии jQuery и jqGrid используется?
Вероятно, jQuery младше 1.4.
Действительно проект новый, и основанный на ZF, а там JQuery по умолчанию подключается версии 1.3.2, я подключил версию 1.8 и все сразу заработало.

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

Игорь2000

Новичок
Добрый день. Подскажите как реализовать: есть столбец с раскрывающемся списком сортировки (Все, 1996, 1997, и т.д.). Необходимо что бы при первоначальном выводе таблицы отображалось только одно значение (например "1996"), а затем пользователь мог выбирать любое другое значение из раскрывающегося списка.
Спасибо.
 

morozzz

Новичок
Был похожий вопрос у klev2004;
Но нужно немного обратное

Как в форме отображения записи скрыть поля? Но чтобы в форме редактирования они были!
То есть в таблице они отображаться НЕ должны, а вот в форме редактирования или добавления - ДОЛЖНЫ.

В свойствах cols ставлю 'hidden' => true - скрывает, пробовал в editoptions поставить 'hidden' => true - не помогает...
 
Сверху