~WR~
Новичок
Тут примерчик есть
http://jqgrid-php.net/examples/?render=jqMiscDatepickers
								http://jqgrid-php.net/examples/?render=jqMiscDatepickers

Да, с этим у меня проблем не возникло, но я говорил о календарике в окне ввода данных. Т.е. при получении фокуса все работает, но когда я пытаюсь сделать как тут, у меня ничего не выходит. Вместо иконки у меня пустота. Кстати такая же история и с примером который вы мне привели. Только на получение фокуса появляется он.Тут примерчик есть
http://jqgrid-php.net/examples/?render=jqMiscDatepickers
нет, пути верные, выставлял путь на левый сайт, и по прямой ссылке у меня иконка открывается, сам не пойму в чем прикол...Наверное потому, что путь к иконке неправильный.
Пропишите правильный buttonImage.

$('#element_id').datepicker(....);
	Пойдем другим путемDebug it.
Открываем firebug, открываем форму, тыкаем на элемент, смотрим его id.
На вкладке console ручками пытаемся прицепить к нему datepicker с параметрами.
PHP:$('#element_id').datepicker(....);
Если не получилось - пытаемся понять, в чем причина. Меняем параметры, пробуем снова.
Когда получится - прописываем их в окончательный код.
 Как изменить фокус при открытии окна ввода данных?Добавляю туда вручную пару записейCREATE TABLE IF NOT EXISTS `tbl_customer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` text NOT NULL,
`last_name` text,
`email` text NOT NULL,
`phone` text,
`discount` decimal(4,2) NOT NULL DEFAULT '0.00',
`date_register` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`date_birth` date DEFAULT NULL,
`contract_type` tinyint(4) unsigned NOT NULL,
PRIMARY KEY (`id`)
)
<?php
class jqSimple extends jqGrid
{
    protected function init()
    {
        #Set database table
        $this->table = 'tbl_customer';
        #Make all columns editable by default
        $this->cols_default = array('editable' => true);
        #Set columns
        $this->cols = array(
            
            'id'        =>array('label' => 'ID',
                                'width' => 10,
                                'align' => 'center',
                                'editable' => false, //id is non-editable
                                ),
            'first_name'=>array('label' => 'First name',
                                'width'	=> 35,
                                'editrules' => array('required' => true),
                                ),
            'last_name' =>array('label' => 'Last name',
                                'width' => 35,
                                'editrules' => array('required' => true),
                                ),
            'email'     =>array('label' => 'Email',
                                'width' => 30,
                                'editrules' => array('email' => true),
                                ),
            'phone'     =>array('label' => 'Phone',
                                'width'	=> 25,
                                'align' => 'center',
                                ),
            'discount'	=>array('label' => 'Discount',
                                'width'	=> 15,
                                'formatter' => 'numeric',
                                'align'	=> 'center',
                                'editable' => false,
                                ),
        );
        #Set nav
        $this->nav = array('add' => true, 'edit' => true, 'del' => true);
        #Add filter toolbar
        $this->render_filter_toolbar = true;
    }
}?>
	require_once 'php/jqGridLoader.php';
$loader = new jqGridLoader;
$loader->set("db_driver", "PDO");
$loader->set("pdo_dsn"  , "mysql:dbname=jqgridphp;host=127.0.0.1");
$loader->set("pdo_user" , "jqgridphp");
$loader->set("pdo_pass" , "jqgridphp");
$jq_loader->autorun();
	Заранее спасибо.<script>
<?= $rendered_grid ?>
</script>
По умолчанию этот скрипт прописывается в файлике, находящийся в папке templates (путь можно менять в файле _layout.php). В вашем случае это будет файл с именем jqSimple.php и содержать 3 строчки кода:Далее в пример говориться про JS, но я так и не соображу, где его вызвать
Заранее спасибо.PHP:<script> <?= $rendered_grid ?> </script>
<script>
<?= $rendered_grid ?>	
</script>
	$this->query = "Ваш запрос";
	Спасибо большое, сегодня обязательно попробую. Еще раз спасибо разработчика за проделанную работуПо дефолту запрашиваются все данные из таблицы, в противном случае пишите свой запрос в классе:
Да, действительно, по умолчанию все ок. Но когда в ячейке стоит вот такой тип поиска:По умолчанию не должно быть такого. Все корректно escape'ится и при записи, и при выводе.
Код в студию.![]()
'stype' => 'select',
'searchoptions' => array(
              'value' => new jqGrid_Data_Value($delivery_types, 'All'),
         ),
	return '"' . implode(';', $base) . '"';
	return jqGrid_Utils::jsonEncode(implode(';', $base));
	Спасибо, это не так критично. Позже проверю ваш вариант.Хм, интересно.
Попробуйте в jqGrid_Data_Value найти:
Заменить на:PHP:return '"' . implode(';', $base) . '"';
PHP:return jqGrid_Utils::jsonEncode(implode(';', $base));
Вообще, это смешно, но в jqGrid нет нормального способа передать произвольные значения в select'ы.
В случае с объектом он теряет порядок в Chrome, Safari, Opera.
В случае со строкой он фейлится на разделителях (двоеточия, точка с запятой).
Надо бы добавить нормальный вариант: массив с объектами, содержащими ключ и значение.
И порядок сохранится, и разделители не будут мешать, и всё это пойдет через стандартный jsonEncode.
Сделаю pull request, как руки дойдут.
protected function opGetSelect()
{
    $this->response['select'] = array(1 => 'Foo', 2 => 'Bar');
}
	
огромное спасибо. А можно ли в ячейках таблицы делать перенос по словам, если строка не умещается в ячейке?И есть ли в поле ввода данных возможность организовать автозаполнение?Тут есть опции dataUrl и buildSelect.
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules
В dataUrl прописываем url на операцию грида, которая вернет json с вариантами.
Просто добавляем к обычному url грида параметр: &oper=get_select
Делаем обработчик:
Потом в buildSelect разбираем пришедший json и формируем на его основании готовый select.PHP:protected function opGetSelect() { $this->response['select'] = array(1 => 'Foo', 2 => 'Bar'); }
Пример писать лень.
Да, еще одно. Если используете редактирование через форму, то поставьте ей опцию recreateForm=true, иначе он только один раз запросит select и не будет обновлять его при каждом открытии.
Можно. Из-за особенностей CSS таблиц, проще всего в parseRow вызывать php-функцию wordwrap и явно переносить символом \n.А можно ли в ячейках таблицы делать перенос по словам, если строка не умещается в ячейке?
Конечно - это же jQuery.И есть ли в поле ввода данных возможность организовать автозаполнение?