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

vergiliy_88

Новичок
Доброго времени суток! Подскажите пожалуйста, как можно в jqgrid-php сделать следующее: при нажатие на кнопку редактирования или же добавления записи, чтоб вместо обычных текстовых полей появлялись либо списки или чек боксы. То есть нужно поменять элементы ввода.
 

vergiliy_88

Новичок
~WR~
Доброго времени суток! Подскажите пожалуйста, как можно в jqgrid-php сделать следующее: при нажатие на кнопку редактирования или же добавления записи, чтоб вместо обычных текстовых полей появлялись либо списки или чек боксы. То есть нужно поменять элементы ввода.
 

~WR~

Новичок
Скорее всего, нарушена последовательность подключения скриптов.
Локализация должна подключаться раньше самого datepicker'а. Кажется...

По второму вопросу из лички: просто на jQuery напишите код, который будет вызываться на событие change скрывать нужные поля.
 

fandm

Новичок
~WR~, приветствую! :)
По второму вопросу из лички: просто на jQuery напишите код, который будет вызываться на событие change скрывать нужные поля.
Я уже именно так товарищу и посоветовал в личку с примером кода. ;)
 

sparkspb

Новичок
Подскажите, пож-та, как сделать горизонтальный скроллинг в таблице? :(
К примеру, у меня 15 столбцов, я хочу сделать ширину таблицы 800px и чтобы та часть столбцов, которая не помещается, можно было увидеть, используя горизонтальный скроллинг?
 

~WR~

Новичок
Поставьте опцию таблицы shrinkToFit => false.
После этого свойство width будет буквально соответствовать ширине колонок.

Если суммарная ширина колонок превысит ширину таблицы - появится горизонтальный скролл.
 

~WR~

Новичок
Also, обратите внимание на новую фишку в jqGrid - frozen columns.
При помощи него можно задать колонки, которые не будут скроллиться вместе с остальными.

Очень мило.
 

sparkspb

Новичок
Поставьте опцию таблицы shrinkToFit => false.
После этого свойство width будет буквально соответствовать ширине колонок.

Если суммарная ширина колонок превысит ширину таблицы - появится горизонтальный скролл.
Спасибо,
Все сделал, как Вы и написали, но все равно прокрутка горизонтальная не появляется :(
 

sparkspb

Новичок
~WR~
Разобрался, еще раз спасибо:
$this->options = array(
'shrinkToFit' => false,
'width' => 800);
 

sparkspb

Новичок
И еще, подскажите, пож-та, как можно поменять размер окна при редактировании. Много полей, хочу сделать так, чтобы появился вертикальный скроллинг и увеличить ширину input-полей.
Где-то в этой ветке уже встречался похожий вопрос, никак не могу найти.
 

~WR~

Новичок
PHP:
$this->nav = array(
    'edit' => true,
    'prmEdit' => array('width' => 400, 'height' => 400),
),
 

sparkspb

Новичок
Всё получилось.
А как сделать так, чтобы окно редактирования нельзя было растягивать, чтобы окно было фиксированным размером. Какое свойство за это отвечает?
 

tyu

Новичок
Скажите, можно ли использовать подгружаемые через ajax подтаблицы если данные основной таблицы загружаются локально? Просто я в такой локальной таблице добавил subGrid: true, subGridUrl, subGridModel. - появились "плюсики", но когда на них нажимаешь пишет "загрузка" и данные на сервер не отправляет.
 

Illya

Новичок
Здравствуйте!

Нужна помощь. Никак не могу разобраться как сделать вывод таблиц!
Просто jqGrid работает!
Все пункты установки сделал, вроде верно все.
Вот структура папок если нужно - ссылка

Файл где нужно мне вывести таблицу и где все подключено что нужно:
PHP:
<!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>My First Grid</title>
 
<link rel="stylesheet" type="text/css" media="screen" href="css/humanity/jquery-ui-1.10.1.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/jqgrid-ext.css" />

<style>
html, body {
    margin: 0;
    padding: 0;
    font-size: 75%;
}
</style>

<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-ru.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jqgrid-ext.js" type="text/javascript"></script>
 
</head>
<body>
<?php
require "jqGridLoader.php";
$loader = new jqGridLoader;

$loader->set('grid_path', 'grids');
$loader->set("db_driver" , "Mysql");
$loader->set("encoding" , "utf-8");

$loader->set("db_host" , "localhost");
$loader->set("db_user" , "root");
$loader->set("db_pass" , "");
$loader->set("db_name" , "sma");

$loader->set("input_grid" , "jqTxt"); 


$loader->autorun();
?>
</body>
</html>
В папке grids есть файл jqTxt.php
PHP:
class jqTxt extends jqGrid
{
    protected function init()
    {
        #Set database table
        $this->table = 'txt';

        #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
            ),

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

            'place' => array('label' => 'Place',
                '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;
    }
}
В БД sma в таблице txt три поля id, tite и place

Что то я не догнал( При выводе пустая страничка!

Спасибо за помощь!

С уважением, Илья.
 

jjsf

Новичок
В chrome после последовательного перехода с одной таблицы в другую много раз , надпись ЗАГРУЗКА перестает исчезать.

пробывал очистить кэш, но не помогает. После перезагрузки компа все нормально, но не надолго-опять появляется.
В Firefox-e все нормально. Как это можно исправить?


" новую фишку в jqGrid - frozen columns.
При помощи него можно задать колонки, которые не будут скроллиться вместе с остальными."
эта фишка в jqgridphp пока нету?
так
'frozen'=> true,
или
'frozencolumns'=> true,
не работает
 

zse43wa

Новичок
Доброе время суток.
Помогите разобраться с таким вопросом:
Хочу заменить элемент в EditFrom на jqGrid (ну если вообще такое возможно)

Изначально было так:
PHP:
$this->cols = array(
...
	'g_id' => array('label' => 'Товар',
		'db' => 'g.id',
		'replace' => $this->getGoods(),
		'width' => 300,
		'align' => 'center',
		'edittype' => "select",
	'editoptions' => array ( 'value' => $this->getGoods() ),
		'editrules' => array('required' => true),
	),
...
protected function getGoods()
{
	$dbRS = $this->DB->query("select id, good_name from goods order by id"); 
	$str = array();
	while($row = $dbRS->fetch(PDO::FETCH_NUM))	
		{$str[$row[0]] = $row[1];}
	if (!empty($dbRS)) $dbRS->closeCursor(); 
	return $str;
}
беда в том, что записей в goods > 1000 и через селекты добавлять либо редактировать запись не имеет особого смысла

пытаюсь заменить его на Grid так:

PHP:
'g_id' => array('label' => 'Товар',
	'db' => 'g.id',
	'replace' => $this->getGoods(),
	'width' => 300,
	'align' => 'center',
	'edittype' => "custom",
	'editoptions' => array ( 
		'custom_element' => new jqGrid_Data_Raw('myGoods'),
	),
	'editrules' => array('required' => true),
	),
ну и:

PHP:
<script>
function myGoods (value, options) {
	var el = document.createElement("table");
	return $(el).jqGrid({
	url:'index.php?jqgrid=goods&src=spr&view=goods',
	datatype: 'json',
	mtype: 'GET',
	colNames:[ 'id', 'tg_id' ],
	colModel :[
	{name:'id', index:'id', width:100},
	{name:'tg_id', index:'tg_id', width:300}],
	});
}
</script>
и как результат "Object # has no method 'jqGrid'"

Подскажите, пожалуйста, вообще можно ли создавать edit как Grid и как?
Заранее благодарю.
 

zse43wa

Новичок
После $loader->autorun();

PHP:
$rendered_grid = $loader->render('jqTxt');

?>

	<script type="text/javascript">
	<?= $rendered_grid ?> 
	</script>
 
Сверху