I am trying to implement jqgrid v3.7 in my webapplication created using cakephp v1.3.
My controller code is as follows
function admin_index()
{
// get how many rows we want to have into the grid - rowNum parameter in the grid
$limit = $this->params['url']['rows'];
// get index row - i.e. user click to sort. At first time sortname parameter -
// after that the index from colModel
$sidx = $this->params['url']['sidx'];
// sorting order - at first time sortorder
$sord = $this->params['url']['sord'];
// if we not pass at first time index use the first column for the index or what you want
if( !$sidx ) $sidx = 1;
// calculate the number of rows for the query. We need this for paging the result
$row = $this->Constituency->find('count');
$count = $row;
// calculate the total pages for the query
if( $count > 0 )
{
$total_pages = ceil($count / $limit);
}
else
{
$total_pages = 0;
}
// if for some reasons the requested page is greater than the total
// set the requested page to total page
if( $page > $total_pages ) $page = $total_pages;
// calculate the starting position of the rows
$start = $limit * $page - $limit;
// if for some reasons start position is negative set it to 0
// typical case is that the user type 0 for the requested page
if( $start < 0 ) $start = 0;
// the actual query for the grid data
$limit_range = $start . "," . $limit;
$sort_range = $sidx . " " . $sord;
//$result = $this->Constituency->findAll(null, "id,name", $sort_range, $limit_range, 1, null);
$this->Constituency->recursive = -1;
$result = $this->Constituency->find('all', array(
'fields' => array('id', 'name'),
'order' => $sidx,
'limit' => $start .",". $limit_range
));
$i=0;
$response->page = $page;
$response->total = $total_pages;
$response->records = $count;
foreach($result as $result)
{
$response->rows[$i]['id'] = $result['Constituency']['id'];
$responce->rows[$i]['cell']=array($result['Constituency']['id'],$result['Constituency']['name']);
$i++;
}
echo json_encode($response);
}
the view file contains the following code
$this->Html->css('ui.jqgrid');
$this->Html->script('jquery.jqGrid.min');
<script type="text/javascript">
$(document).ready(function(){
$("#list").jqGrid(
{
url:'<?php echo $this->Html->url(array("controller" => "constituencies", "action" => "index")); ?>',
datatype: "json",
colNames:['Id','Name'],
colModel:[
{name:'id',index:'id', width:55},
{name:'name',index:'name', width:90},
],
rowNum:10,
rowList:[10,20,30],
pager: jQuery('#pager'),
sortname: 'id',
viewrecords: true,
sortorder: "desc",
caption:"Constituencies"
});
$("#list").navGrid("#pager",{edit:false,add:false,del:false});
})
</script>
<div class="constituencies index">
<h2><?php __('Constituencies'); ?></h2>
<table id="list" class="scroll"></table>
<div id="pager" class="scroll" ></div>
</div>
Now when I load the index action I get a lot of errors
Undefined index: rows Undefined index: sidx Undefined index: sord etc. etc.
Has anybody included jqgrid in a cakephp based application ?
How do I include the jqgrid in my application ?
Please help me do this.
Thanks