CodeIgniter Forums
Integracion Basica Codeigniter - JQGRID - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: Integracion Basica Codeigniter - JQGRID (/showthread.php?tid=45997)



Integracion Basica Codeigniter - JQGRID - El Forum - 10-13-2011

[eluser]Unknown[/eluser]
Es bastante complicado encontrar documentacion acerca de la integracion de CI con algun plugin Jquery, pero este demo de codigo es bastante facil para emepezar. Proximamente colgare la integracion avanzada con este plugin y con otros que he logrado operar.

En la parte de la vista, es importante definir claramente las propiedades de la grilla. Para este ejemplo voy a utilizar como dataype JSON. En mi caso la llamo grupo_view.php


$("#container_grupo").jqGrid({
url:'<?= base_url() ?>index.php/SEGURIDAD/grupo/jqgrid_grupo',
datatype: 'json',
mtype: 'POST',
colNames:['CODIGO', 'NOMBRE GRUPO','DESCRIPCION GRUPO'],
colModel :[
{name:'cod_grupo', index:'cod_grupo', width:100},
{name:'nom_grupo', index:'nom_grupo', width:200},
{name:'desc_grupo', index:'desc_grupo', width:400},
],
jsonReader : {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: true,
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {root:"rows", repeatitems: true, cell:"cell" }
},
pager: '#pager',
rowNum:10,
rowList:[10,20,30],
sortname: 'nom_grupo',
sortorder: 'desc',
viewrecords: true,
gridview: true,
caption: 'GRILLA -> GRUPO'
});



Mi controlador es llamado grupo.php y el metodo que me permite hacer el carge de los datos en la grilla lo llamo jqgrid_grupo().

public function jqgrid_grupo(){
$page = $_POST['page']; //
$limit = $_POST['rows']; //
$sidx = $_POST['sidx']; //
$sord = $_POST['sord']; //
if(!$sidx) $sidx = 1;
####################################################################
####################################################################
$count = $this->db->count_all_results('seguridad_grupo'); ##########
####################################################################
####################################################################
if($count > 0 && $limit > 0)
$total_pages = ceil($count/$limit);
else
$total_pages = 0;
if ($page > $total_pages) $page=$total_pages;
$start = $limit*$page - $limit;
if($start <0) $start = 0;
####################################################################
####################################################################
$responce["page"] = $page;
$responce["total"] = $total_pages;
$responce["records"] = $total_pages;
$this->db->select("cod_grupo, nom_grupo, desc_grupo");
$this->db->order_by("$sidx", "$sord");
$this->db->limit($limit, $start);
$query = $this->db->get("seguridad_grupo");
$i = 0;
foreach ($query->result() as $row){
$responce["rows"][$i]["id"] = $row->cod_grupo;
$responce["rows"][$i]["cell"] = array($row->cod_grupo, $row->nom_grupo, $row->desc_grupo);
$i++;
}
echo json_encode($responce);
} /*function jqgrid_grupo*/


Espero que esto sea de ayuda!

Cordialmente,


Jorge Andres Delgado Medina
Inteligencia Digital, Colombia
[email protected]