martes, 3 de diciembre de 2013

Servicio REST y el uso de JSON

A continuación mostraremos el uso de json para codificar y decodificar información en el proyecto usando el servicio rest.
public function busca()
{
if ($this->_verificaSesion() == FALSE OR $this->session->userdata('opc_cotizacion') == FALSE)
{
redirect(base_url(),'refresh');
}
else
{
$xdato1 = $this->input->post('xdato1');
$xdato2 = $this->input->post('xdato2');
$xdato3 = $this->input->post('xdato3');
$xcontrol = $this->input->post('xcontrol');
$xpagina=$this->input->post('xpagina');
$xnum_reg_por_pagina=15;

$xreg_inicio_busqueda=($xpagina-1)*$xnum_reg_por_pagina;
if ($xcontrol == '1')
{
$c_empresa=$this->session->userdata('xc_empresa');
$this->load->model('venta/cotizacion_modelo');
$xdatobusq=$this->cotizacion_modelo->lista_por_pagina($c_empresa,
$xdato1,$xdato2,$xdato3,$xnum_reg_por_pagina,$xreg_inicio_busqueda);
$jasonxdatobusq=json_encode($xdatobusq);
// Se codifica el resultado obtenido para comunicar con la grilla
echo $jasonxdatobusq;
}
else
{
redirect(base_url(),'refresh');
}
}
}

Esta función sirve para guardar, se convierte la grilla en una cadena JSON para su posterior uso y decodificación.


$('#guarda').click(function(){
var xRpta=valida_grabar();
if (xRpta=="OK")
{
var xGridDataServicio=$("#gridServicio").jqGrid('getRowData');
var xGridDataServicioJson=JSON.stringify( xGridDataServicio);
$('#x_cotizacion_det').val(xGridDataServicioJson);

$('#x_control').val('1');
$('#myForm').submit();
}
else
{
alert(xRpta);
}
});
Declaración de la grilla Jqgrid que trabaja con la data en formato JSON string.
// Retorna la información en forma de JSON y la grilla lo interpreta para ser llenada.
var xdataGrid={"page":"1","total":1,"records":"3", "rows": [{"c_informe":"000000000016","c_empaque":"6P","x_empaque":"COMPOSITE PACKAGING, GLASS RECEPTACLE","peso":"2500.000","volumen":"63.000","q_bultos":"8"}] };

$("#gridServicio").jqGrid({
datatype: "jsonstring",
datastr: xdataGridServicio,
colNames:['c_articulo','Articulo','Cantidad','V.Unitaria','IGV','Total'],
jsonReader : {
repeatitems:false
},
rowNum:1000,
rowList:[10,20,30],
pager: jQuery('#gridpager'),
sortname: '',
viewrecords: true,
sortorder: "asc",
caption:"Articulos",
hidegrid: false,
height:150,
cellEdit: true,
cellsubmit: 'clientArray',


Para obtener la presentacion hacer clic aqui

No hay comentarios: