Forum
00:23
13/07/2009
Hello,
I am using treeGrid as grid, Adjacency List Model.
jqGrid 3.4.4
I get this Javascript error message:
error: '0' is null or not an object
I read your Trouble-Shooting :
"'ts.p.colModel[...].align' is null or not an object
This one means you are sending too many columns of data from the server.
If you send too few, then the grid will appear but one or
more columns may be missing with data showing up in the wrong column;
if you have more hidden fields then missing columns,
you might not see this effect until you edit a row and
see that one or more fields are not showing up there."
What missing or worng in my code?
My code:
... example_f1.php
<?php
class testJqGrid
{
function __construct()
{
$this->viewHtml();
}
function viewHtml()
{
?>
<html>
<head>
<title>jqGrid Demo</title>
<link rel="stylesheet" type="text/css" media="screen" href="../themes/sand/grid.css" />
<link rel="stylesheet" type="text/css" media="screen" href="../themes/jqModal.css" />
<script src="../jquery.js" type="text/javascript"></script>
<script src="../jquery.jqGrid.js" type="text/javascript"></script>
<script src="../js/jqModal.js" type="text/javascript"></script>
<script src="../js/jqDnR.js" type="text/javascript"></script>
<script src="../js/grid.treegrid.js" type="text/javascript"></script>
<script src="../js/jquery.jqTree.js" type="text/javascript"></script>
<script type="text/javascript">
gridimgpath = '../themes/sand/images';
jQuery(document).ready(function(){
jQuery("#navgridx").jqGrid({
url:'server_f1.php',
datatype: "json",
mtype: "POST",
colNames:['id','levelx','range', 'desc', 'parent_id','is_leaf'],
colModel:[
{name:'id',index:'id', width:1,hidden:true,key:true},
{name:'levelx',index:'levelx', width:30, align:"left",editable:true,editoptions:{size:30}},
{name:'range',index:'range', width:30,editable:true,editoptions:{size:30}},
{name:'desc',index:'desc', width:50,editable:true,editoptions:{size:50}},
{name:'parent_id',index:'parent_id', width:40,align:"right",editable:true,editoptions:{size:40}},
{name:'is_leaf',index:'is_leaf', width:40,align:"right",editable:true,editoptions:{size:40}}
],
imgpath: gridimgpath,
pager: jQuery('#pagernav'),
width: "800",
height: "auto",
treeGrid: true,
treeGridModel : 'adjacency',
ExpandColumn : 'levelx',
tree_root_level :2,
treeReader : { level_field: "levelx",
parent_id_field: "parent_id",
leaf_field: "is_leaf",
expanded_field: "expanded" },
caption:"My Tree Navigator Example",
editurl:'someurl_f1.php'
}).navGrid("#pagernav",{find:true,edit:true,add:false,del:false,position:"left"},
{reloadAfterSubmit:false}
);
});
</script>
</head>
<body>
<table id="navgridx" class="scroll" cellpadding="0" cellspacing="0"></table>
<div id="pagernav" class="scroll" style="text-align:center;"></div>
</body>
</html>
<?
}
}
$testJqGrid = new testJqGrid();
?>
..... server_f1.php
<?php
class testJqGridArr
{
function __construct()
{
$this->viewHtmlArr();
}
function viewHtmlArr()
{
include("JSON.php");
$json = new Services_JSON();
$count=9;
$page = 1; //$_REQUEST['page']; // get the requested page
$limit = 10; //$_REQUEST['rows']; // get how many rows we want to have into the grid
$sidx = 1; //$_REQUEST['sidx']; // get index row - i.e. user click to sort
$sord = 'asc'; //$_REQUEST['sord']; // get the direction
$debug = $_REQUEST['debug'];
if(!$sidx) $sidx =1;
// array instead of use DB table
if($debug ) echo $stat.'<br>';
$myArr = array(
'0'=> array('ID'=>'1','LEVELX'=>1,'RANGE'=>'0-90','DESC'=>'ROOT','PARENT_ID'=>'','IS_LEAF'=>'false'),
'1' => array('ID'=>'2','LEVELX'=>2,'RANGE'=>'0-10','DESC'=>'GRP 1','PARENT_ID'=>'1','IS_LEAF'=>'false'),
'2' => array('ID'=>'3','LEVELX'=>3,'RANGE'=>'1-5' ,'DESC'=>'GRP 1A','PARENT_ID'=>'2','IS_LEAF'=>'true'),
'3' => array('ID'=>'4','LEVELX'=>3,'RANGE'=>'6-10','DESC'=>'GRP 1B','PARENT_ID'=>'2','IS_LEAF'=>'true'),
'4' => array('ID'=>'5','LEVELX'=>2,'RANGE'=>'11-30','DESC'=>'GRP 2','PARENT_ID'=>'1','IS_LEAF'=>'false'),
'5' => array('ID'=>'6','LEVELX'=>3,'RANGE'=>'11-15','DESC'=>'GRP 2A','PARENT_ID'=>'5','IS_LEAF'=>'true'),
'6' => array('ID'=>'7','LEVELX'=>3,'RANGE'=>'15-20','DESC'=>'GRP 2B','PARENT_ID'=>'5','IS_LEAF'=>'true'),
'7' => array('ID'=>'8','LEVELX'=>3,'RANGE'=>'21-25','DESC'=>'GRP 2C','PARENT_ID'=>'5','IS_LEAF'=>'true'),
'8' => array('ID'=>'9','LEVELX'=>3,'RANGE'=>'26-30','DESC'=>'GRP 2D','PARENT_ID'=>'5','IS_LEAF'=>'true')
);
$responce->page = 1;
$responce->total = 9;
$responce->records = $count;
$i=0;
foreach($myArr as $key => $row)
{
$responce->rows[$i]['id']=$row['ID'];
$responce->rows[$i]['cell']=array($row['ID'],
$row['LEVELX'],
$row['RANGE'],
$row['DESC'],
$row['PARENT_ID'],
$row['IS_LEAF']
);
$i++;
}
echo $json->encode($responce); // coment if php 5
if($debug )
{
echo '<br> test';
print_r($responce);
echo '<br>';
print_r($_REQUEST);
echo '<br>';
}
}
function Strip_x($value)
{
if(get_magic_quotes_gpc() != 0)
{
if(is_array($value))
if ( $this->array_is_associative($value) )
{
foreach( $value as $k=>$v)
$tmp_val[$k] = stripslashes($v);
$value = $tmp_val;
}
else
for($j = 0; $j < sizeof($value); $j++)
$value[$j] = stripslashes($value[$j]);
else
$value = stripslashes($value);
}
return $value;
}
function array_is_associative_x ($array)
{
if ( is_array($array) && ! empty($array) )
{
for ( $iterator = count($array) - 1; $iterator; $iterator-- )
{
if ( ! array_key_exists($iterator, $array) ) { return true; }
}
return ! array_key_exists(0, $array);
}
return false;
}
}
$testJqGridArr = new testJqGridArr();
?>
... someurl_f1.php
<?php
?>
thanks
06:41
Moderators
30/10/2007
Hello,
Java Script is case sensitive. You have not sonsitent definition and returned data - in sense of case sensitivity.
Regards
Tony
For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.
07:28
Moderators
30/10/2007
Hello,
You should not define the tree coulms in colModel. The jqGrid does this automatically
for you. Also the columns parent_id and isLeaf in colModel are not needed. By default these coulms are not editable and if you want to edit them use setColProp after the grid is constructed and before the first edit. See docs which event is the best for your requierments
Regards
Tony
For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.
Most Users Ever Online: 715
Currently Online:
29 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66