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

Bagrintsev

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

Bagrintsev

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

PHP:
            'redaktor'          => array('label' => 'redaktor',
                                  'width' => 100,
                                  'align' => 'center',
                                  'editable' => true,
                                  'hidden'=> false,
                                    'editoptions' => array('defaultValue' => 'Вася Пупкин')
                                  ),
 

F713

Новичок
Приветствую.

Хочу задать вопрос: что делать если при редактировании нодов в древовидной структуре (Nested Set) нужно организовать возможность перехода к другим родителям и изменение позиции внутри 1го родителя.
То есть получить от пользователя и отправить на сервер нужно данные о столбцах (тут никаких проблем:)), и еще данные о том в какого родителя перенести и перед/после кого поставить (и тут уже проблемы).
Решение искал но не нашел, хотя задача вроде бы очевидная.
В общем прошу совета.
 

mictor1973

Новичок
Всем доброго здоровья!
Не подскажите как в окне редактирования при смене значения одного select наполнить значениями второй select?

Хотя бы названия событий у selecta при изменении (если вообще такое есть) . В инете роюсь, найти не могу.
 
Последнее редактирование:
Всем доброго дня!
Отличный плагин!
Изначально возникла такая проблема: таблица загружалась, а данные нет (вроде одна из популярных проблем). Ошибка такая появилась при интеграции в приложение - файлы с плагином поместили не в корень, а в отдельную папку. Вроде все пути исправили - результата не было.
Нашли в итоге в чем дело - неверно считывался url Grid - таблицы.
Исправили, указав папку с плагином, в файле jqGrid.php
в function renderGridUrl(){
...
добавили перед return
$this->base_url = 'table\\';
..
}
 
И вот теперь возникла следующая проблема. Плиз, подскажите, если кто-то работал с несколькими вложенными таблицами. В примере одна только - как вторую встроить не знаю.
Есть идея, конечно, но хотелось бы что-то лучше:
Вот начальный код:
Код:
<script>
    var opts = {
        subGrid:true,
        subGridRowExpanded:function (subgrid_id, row_id) {
            $('#' + subgrid_id)
                .append('<table id="jqMiscSubgrid2' + row_id + '"></table>')
                .append('<div id="jqMiscSubgrid2' + row_id + '_p"></div>');

            $.ajax({
                url:$(this).getGridParam('url'),
                dataType:'script',
                data:{'oper':'renderSubgrid', 'customer_id':row_id}
            });
        }
    };

    <?= $rendered_grid ?>
</script>
Если запомнить row_id в массив (чтобы знать подтаблицу, у которой хотим поменять опции), а потом после формирования таблицы поменять опции сабгрида через SetGridParam, чтобы у него тоже была подтаблица.
 

kuaka

Новичок
Здравствуйте!
Только начинаю разбираться с jQuery, c jqGrid в частности. Не могли бы скинуть рабочие конфиги jqGridPHP?
Бьюсь уже который день, ничего не выходит.
Если бы этот пример, такой, как здесь http://jqgrid-php.net/doku.php (живой пример), было бы замечательно.
Ну или любой, точно рабочий.
Очень прошу.
Заранее благодарен.
 

Bagrintsev

Новичок
Здравствуйте!
Только начинаю разбираться с jQuery, c jqGrid в частности. Не могли бы скинуть рабочие конфиги jqGridPHP?
Бьюсь уже который день, ничего не выходит.
Если бы этот пример, такой, как здесь http://jqgrid-php.net/doku.php (живой пример), было бы замечательно.
Ну или любой, точно рабочий.
Очень прошу.
Заранее благодарен.
что конкретно нужно: конфиги или структура каталогов?
У тебя получилось вывести данные таблицы в форму JqGrid?
 

kuaka

Новичок
что конкретно нужно: конфиги или структура каталогов?
У тебя получилось вывести данные таблицы в форму JqGrid?
Данные вывел. использовал JSON. Но это просто таблица. Базовая. Их функционала только разбиение на страницы. http://trirand.com/blog/jqgrid/jqgrid.html - вот отсюда, уже более сложные, не получается подключить. Хотя всё делаю также, как и с базовой таблицей. Опять же - "живой пример" - вообще идеальная вещь.. Может есть мануал, как допилить до такого.
 
Последнее редактирование:

~WR~

Новичок
Здравствуйте!
Только начинаю разбираться с jQuery, c jqGrid в частности. Не могли бы скинуть рабочие конфиги jqGridPHP?
Бьюсь уже который день, ничего не выходит.
Если бы этот пример, такой, как здесь http://jqgrid-php.net/doku.php (живой пример), было бы замечательно.
Ну или любой, точно рабочий.
Очень прошу.
Заранее благодарен.
Он есть в репозитории. Кажется, папочка examples. Грид называется jqWelcome.
 

kuaka

Новичок
Он есть в репозитории. Кажется, папочка examples. Грид называется jqWelcome.
ну вот у меня как раз не получается, видимо, подключение всех этих гридов. Попытаюсь описать, что я сделал. Учитываем, что jqGrid работает, данные получает и выводит

1. Скачал jqgridphp.
2. Скинул содержимое /php в корень своего сайта (там лежат другие php)
3. Раскидал css и js
4. Всё, дальше я не понимаю, что надо сделать

Вот допустим index.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>123 jqGrid с Linkexchanger</title>
    <link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui.theme.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui.min.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" mce_href="css/ui.jqgrid.css" />
    <style>
        html, body{
        margin: 0 auto;
        padding: 0;
        font-size: 100%;
        } 
    </style>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/i18n/grid.locale-en.js"></script>
    <script type="text/javascript" src="js/jquery.jqGrid.min.js"></script>
    <script type="text/javascript">
$(function(){
                    $('#le_table').jqGrid({
                                  url:'p1e1.php',
                      datatype: 'json',
                                mtype: 'GET',
                                colNames:['Код страны','Код региона', 'Город','Долгота','Широта','nbip'],
                                colModel :[
                                        {name:'country_code', index:'country_code', width:80},
                                        {name:'region_code', index:'region_code', width:80},
                                        {name:'city', index:'city', width:90},
                                        {name:'latitude', index:'latitude', width:60},
                                        {name:'longitude', index:'longitude', width:60},
                                        {name:'nbip', index:'nbip', width:30}],
                                pager: $('#le_tablePager'),
                                rowNum:10,
                                rowList:[10,20,30,100],
                                sortname: 'city',
                                sortorder: 'asc',
                                caption: 'Загрузка JSON данных',
                                rownumbers: true,
                           
                                rownumWidth: 40
                    });
        });
    </script>



</head>
    <body>
    <table id="le_table"></table>
    <div id="le_tablePager"></div>
</body>
</html>
Вот php-скрипт
PHP:
<?php
// Подключение и выбор БД
    $db = mysql_connect('localhost', 'root', '');
    mysql_select_db('test');
    # ВНИМАНИЕ!!!
    # Данный код не имеет проверок запрашиваемых данных
    # что может стать причиной взлома!
    # Обязательно проверяйте все данные
    # поступающие от клиента
 
    // Номер запрашиваемой страницы
    $page = $_GET['page'];
 
    // Количество запрашиваемых записей
    $limit = $_GET['rows'];
 
    // Номер элемента массива по которому
    // следует производить сортировку
    // Проще говоря поле, по которому
    // следует производить сортировку
    $sidx = $_GET['sidx'];             
 
    // Направление сортировки
    $sord = $_GET['sord'];                     
 
    // Если не указано поле сортировки,
    // то производить сортировку по первому полю
    if(!$sidx) $sidx =1;             
 
    // Выполним запрос, который
    // вернет суммарное кол-во записей в таблице
    $result = mysql_query("SELECT COUNT(*) AS count FROM cities");
    $row = mysql_fetch_array($result,MYSQL_ASSOC);
    // Теперь эта переменная хранит кол-во записей в таблице
    $count = $row['count'];               
 
    // Рассчитаем сколько всего страниц займут данные в БД
    if( $count > 0 && $limit > 0) {
        $total_pages = ceil($count/$limit);
    } else {
        $total_pages = 0;
    }               
 
    // Если по каким-то причинам клиент запросил
    if ($page > $total_pages) $page=$total_pages;               
 
    // Рассчитываем стартовое значение для LIMIT запроса
    $start = $limit*$page - $limit;               
    // Зашита от отрицательного значения
    if($start < 0) $start = 0;               
 
    // Запрос выборки данных
    $query = "SELECT id, country_code, region_code, city, latitude,
    longitude, nbip FROM cities
    ORDER BY ".$sidx." ".$sord." LIMIT ".$start.", ".$limit;
    $result = mysql_query($query);               
 
    $data['page']      = $page;
    $data['total']      = $total_pages;
    $data['records']    = $count;
    // Строки данных для таблицы
    $i = 0;
    while($row = mysql_fetch_assoc($result)) {
        $data['rows'][$i]['id'] = $row['id'];
        $data['rows'][$i]['cell'][] = $row['country_code'];
        $data['rows'][$i]['cell'][] = $row['region_code'];
        $data['rows'][$i]['cell'][] = $row['city'];
        $data['rows'][$i]['cell'][] = $row['latitude'];
        $data['rows'][$i]['cell'][] = $row['longitude'];
        $data['rows'][$i]['cell'][] = $row['nbip'];
        $i++;
    }
    // Перед выводом не забывайте выставить header
    // с типом контента и кодировкой
    header("Content-type: application/json;charset=utf-8");
    echo json_encode($data);
 
    // Перед выводом не забывайте выставить header
    // с типом контента и кодировкой
           
 
 
    ?>
Это всё дело работает.
как теперь сюда прикрутить jqWelcomre, допустим. И ещё - у меня тут обычное подключение к базе. Надо ли менять на PDO?
 
Последнее редактирование:

Bagrintsev

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

1. Скачал jqgridphp.
2. Скинул содержимое /php в корень своего сайта (там лежат другие php)
3. Раскидал css и js
4. Всё, дальше я не понимаю, что надо сделать

.......

Это всё дело работает.
как теперь сюда прикрутить jqWelcomre, допустим. И ещё - у меня тут обычное подключение к базе. Надо ли менять на PDO?
Почитай внимательно что такое JqGridPHP. Пока у тебя нет понимания что это за технология.
Никаких выборок из таблиц делать не надо. Скрипт сам все делает за тебя - сам таблицы подключает, сам выборку делает, твое дело - только создать экземпляр класса и настроить его как тебе нужно. Если хочешь - выложу архив с работающей конфой.
 

kuaka

Новичок
Почитай внимательно что такое JqGridPHP. Пока у тебя нет понимания что это за технология.
Никаких выборок из таблиц делать не надо. Скрипт сам все делает за тебя - сам таблицы подключает, сам выборку делает, твое дело - только создать экземпляр класса и настроить его как тебе нужно. Если хочешь - выложу архив с работающей конфой.
Я понимаю, что он сам рендерит код по выборке. И я читал доки. Просто нужен пример, скорее всего, чтобы лучше понять. Да, было б неплохо взглянуть на работающую конфу
 

kuaka

Новичок
Немного разобравшись в этом прекрасно плагине :), не могу решить следующую задачу. Добавляю картинку в одно из полей. Насколько я понимаю, картинка стандартно ужимается до 75х75. И хранится под таким размером. Вопрос: как можно реализовать кликабельность картинки. Проще говоря, сделать href на её реальный размер.
 

kamelions

Новичок
Здравствуйте.
Подскажите пожалуйста, как прикрутить кнопку к записям (как пример http://www.trirand.com/blog/phpjqgrid/examples/editing_data/datepicker/default.php ), по нажатию на которую будет открываться модальное окно. 5 часов сижу не понимаю как это реализовать. Заранее благодарен
 

kuaka

Новичок
Доброе время суток!
Кто-нибудь знает, реализована ли в плагине мультизагрузка?
jqOperUpload отлично работает. Но только для одного файла.
 

acanthis

Новичок
Делаю Export to Excel по примеру http://jqgrid-php.net/examples/?render=jqOutExcel

Вывожу в рендере кнопку
Код:
$gridI.jqGrid("navButtonAdd", pager,
        {
            caption:"Excel",
            title:"Excel",
            icon:"ui-extlink",
            onClickButton:function () {

                var rows = prompt("How many rows to export?");
                if (!rows) return;

                $(this).jqGrid("extExport", {"export":"ExcelHtml", "rows":rows});
           
            }
        });
При попытке выполнить экспорт ничего не происходит, консол тоже без ошибки. В какую сторону капать? :(
У Вас в коде ошибочка.
вместо
Код:
$gridI.jqGrid("navButtonAdd", pager,
нужно вставить
Код:
$grid.jqGrid("navButtonAdd", pager,
А вообще, пользуйтесь FireBug-ом. Он укажет Вам на все ошибки.
 

pantela

Новичок
У Вас в коде ошибочка.
вместо
Код:
$gridI.jqGrid("navButtonAdd", pager,
нужно вставить
Код:
$grid.jqGrid("navButtonAdd", pager,
А вообще, пользуйтесь FireBug-ом. Он укажет Вам на все ошибки.
Уже решил, пробламма была втом что серверная часть не находила файл для инклуда ExcelHtml.php путь был не верный.

спс.Ув.

Update:
Имеет баг, в Хроме после Экспорта слой модального окна не проподает... http://1bon.ru/479/ :(
 
Последнее редактирование:
Сверху