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

Вейдер

Новичок

grey4eg

Новичок
Добрый день.
Пытаюсь подключиться к MSSQL, но бд не видит вообще (все время пишет "загрузка", тогда как при успешном соединении обычно просто белое поле).
Все бы ничего, но с этого же сервера (где скрипты) я отлично подключаюсь к этому серверу MSSQL через PHP, все без проблем работает.
Функции mssql_connect, mssql_select_db, mssql_query, mssql_fetch_array отлично работают.
Класс наследую как положено:
PHP:
class jqSimple extends jqGrid_Adapter_Mssql
{
    protected function init()
    {
        #Set database table
        $this->table = 'dbo.DB_Person';

        #Make all columns editable by default
       // $this->cols_default = array('editable' => false);

        #Set columns
        $this->cols = array(

            'NN' => array('label' => 'NN',
                'width' => 10,
                'align' => 'center',
                'editable' => false, //id is non-editable
            ),

            'FIO' => array('label' => 'FIO',
                'width' => 35,
                'editrules' => array('required' => true),
            ),


        );

        #Set nav
        $this->nav = array('add' => true, 'edit' => true, 'del' => true);

        #Add filter toolbar
        $this->render_filter_toolbar = true;
    }
}
Конфиге:
PHP:
<?php
$lang = 'ru';

$_CONFIG = array(
    'root_path' => dirname(__FILE__) . '/../php/',

   'encoding' => 'utf-8',

    'pdo_dsn' => 'mssql:dbname=DBNAME;host=101.199.22.43',
    'pdo_user' => 'USERNAME',
    'pdo_pass' => 'P@SS',
);
Все вроде бы верно, почему может не соединяться с БД?
Как хотя бы начать траблшутинг?
Согласно конфигу, поддержка mssql стоит:
 

Вложения

Последнее редактирование:

Neonsly

Новичок
Уважаемые, подскажите пожалуйста.
Как в примере я создал второй грид (диалоговое окно), но в нем событие DblClick верхнего грида тоже обрабатывается. Т.е. если два раза нажать на строку во втором гриде - сработает событие верхнего грида.
И если во второй грид подключить панель с фильтром, то он не работает - невозможно в них зайти и что то написать.
Как это побороть?

Первое решил. Переписав начало

Код:
$('#jqKits').bind('jqGridDblClickRow', function(e, id)
    {
А с фильтром не знаю что придумать. Вроде все события обрабатываются при клике на input, но в него никак не хочет зайти.

И еще ругается что errcap undifinded при использовании

PHP:
throw new jqGrid_Exception('Incorrect price!');
Код:
jqgrid-ext.js:23 Uncaught TypeError: Cannot read property 'errcap' of undefined
    at Object.errorHandler (jqgrid-ext.js:23)
    at Object.success (jqgrid-ext.js:254)
    at o (jquery.min.js:2)
    at Object.fireWith [as resolveWith] (jquery.min.js:2)
    at w (jquery.min.js:4)
    at XMLHttpRequest.d (jquery.min.js:4)
 
Последнее редактирование:

ruslan0072003

Новичок
Здравствуйте! Экспериментирую с вашим замечательным скриптом! Но возникли трудности... Данные загружаются в грид. А вот проблемы с обновлением:
1) При добавлении/редактировании/удалении записи, грид не обновляется. Т.е., в базу запись попала, но не вывелась..
2) При нажатии на кнопку "Обновить" в тулбаре внизу, таблица не обновляется.

Буду очень вам благодарен за помощь!!!

Вот скрипт грида:
PHP:
class jqOrg extends jqGrid
{
    protected function init()
    {
        #Set database table
        $this->table = BEZ_DBPREFIX .'orgStruct';

        $this->nav = array(

            #Set common nav actions
            'add' => true,
            'edit' => true,
            'del' => true,
            'view' => true,
            'search' => true,
            'refresh' => true,
           
            #Set text labels. It's better to set them in defaults
            'addtext' => 'Add',
            'edittext' => 'Edit',
            'deltext' => 'Delete',
            'viewtext' => 'View',

             #Set common excel export
            'excel' => true,
            //'exceltext' => 'Excel',

           
           #Set ading params
            'prmAdd' => array('width' => 400,
                'bottominfo' => 'Custom info came from PHP!',
                'closeAfterAdd' => true,
                'recreateForm' => true),
               
            #Set editing params
            'prmEdit' => array('width' => 400,
                'bottominfo' => 'Custom info came from PHP!',
                'viewPagerButtons' => false,
                'checkOnUpdate' => true,
                'checkOnSubmit' => true,
                'closeAfterEdit'=> true),
        );
       
        #Make all columns editable by default
        $this->cols_default = array('editable' => true);

        #Set columns
        $this->cols = array(

            'id' => array(
                'label' => 'id',
                'width' => 75,
                'align' => 'center',
                'key' => true,
                'editable' => false, //id is non-editable
            ),

            'name' => array('label' => 'Название',
                'width'  => null,
                'shrinkToFit'  => false,              
                'editrules' => array('required' => true),
            ),

            'shortName' => array('label' => 'Короткое название',
                'width'  => null,
                'shrinkToFit'  => false,  
                'editrules' => array('required' => true),
            ),
        );

        #Add filter toolbar
        $this->render_filter_toolbar = true;
    }
}
UPD: Данные сохраняются, но не передаются из базы...
 
Последнее редактирование:

many14_95

Новичок
Товарищи, всем доброго времени суток. Есть ли возможность в данном гриде использовать объединение заголовков не одного-двух уровней, а более.
Пример прилагается
 

GowarD

Новичок
В таблице вывожу дерево категорий, хотел сделать так, что бы при добавлении новой записи вібранная запись была родительской для новой записи. Как получить в операцию добавления записи id выбраной строки? Пробовал так:
Код:
    protected function opAdd($data)
    {
        $data['parent_id'] = $this->input('id');
        $this->DB->insert($this->table, $data);
    }
 

anion

Новичок
В таблице вывожу дерево категорий, хотел сделать так, что бы при добавлении новой записи вібранная запись была родительской для новой записи. Как получить в операцию добавления записи id выбраной строки? Пробовал так:
Код:
    protected function opAdd($data)
    {
        $data['parent_id'] = $this->input('id');
        $this->DB->insert($this->table, $data);
    }
что-то я не совсем понял что надо, $this->input('id') это что, ID только что добавленной записи?
 

anion

Новичок
Понял, наверное надо как то так делать
PHP:
protected function opAdd($data)
{
    $data['parent_id'] = $this->input('id');
    return $this->DB->insert($this->table, $data, true); 
}
или $this->input('id'); не стабатывает?
 
Последнее редактирование:

GowarD

Новичок
Есть дерево категорий, структура: id, name, parent_id. Сейчас вывожу все три поля и родительская категория выбирается из выпадающего списка. Поскольку количество категорий большое хочется упросить. Как я хочу реализовать: в дереве выводится id, name. Выбираю строчку/категорию "телефоны" с id = 5. Хочу добавить подкатегорию "смартфоны", для которой родительская категория с id = 5 ("телефоны"). При добавлении новой записи мне надо добавить поле parent_id в которое записать id выбраной категории, тоесть 5. Вы писали что "при редактировании", в моем случае это не редактирование а добавление и $this->input('_id'); и $this->input('id'); не передают id выбраной строки.
 

anion

Новичок
что выдаёт print_r($this->input);


PHP:
protected function opAdd($data)
{
   print_r($this->input);
   $data['parent_id'] = $this->input('_id');
    return $this->DB->insert($this->table, $data, true);
}
 

~WR~

Новичок
Этот ID сам jqGrid не передаёт в случае с add. Это логично, потому что добавляется совсем новая запись, и связи с выделенным рядом не предполагается.

Посмотрите в сторону serializeEditData, чтобы свои параметры добавлять в post-запрос.
И в сторону $grid.getGridParam('selrow'), чтобы получить row_id выбранного ряда.
 

~WR~

Новичок
Вообще, я в тихом шоке.
46 страниц (!!) в теме

Много лет прошло, но тема "сделать хитрый грид по-быстрому" до сих пор актуальна.
 

anion

Новичок
Вообще, я в тихом шоке.
46 страниц (!!) в теме

Много лет прошло, но тема "сделать хитрый грид по-быстрому" до сих пор актуальна.
А что, очень удобно и просто.
есть w2ui тоже удобен, прост и даже по больше функционала в нём, но где-то не хватает того что в jqgrid есть(ну либо я не шарю), но это всё уже не PHP, а java.
 

mishas

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

fixxxer

К.О.
Партнер клуба
А что же тогда? Вы хотите, чтобы разработчик jqGridPhp пришел к вам домой и починил вам интернет? :)
 
Сверху