Foro

ExtJs y su integración con CodeIgniter

0
Estoy iniciando un proyecto y utilizo ExtJs y CodeIgniter y el problema es la presentación de los datos ya sea en combos o grid, este es mi problema en el grid. Envio código de MVC. Tengo el siguiente modelo MVC con codeigniter. [color=#BF0000][b]Controlador:[/b][/color] function mostrar_pendientes(){ $this->load->model('pruebamodel'); $Boards = $this->pruebamodel->lista_pendiente(); foreach($Boards->result() as $row) { $item = Array("Id_Evaluacion" => $row->Id_Evaluacion); $itemList[] = $item; } $rows = $Boards->num_rows(); $data = json_encode($itemList); echo '({"total":"' . $rows . '","results":' . $data . '})'; // $this->load->model('pruebamodel'); // $pend = $this->pruebamodel->lista_pendiente(); $this->load->view('auditoria'); } [color=#BF0000][b]Modelo[/b][/color] function lista_pendiente(){ $this->db->select('Id_Evaluacion'); $this->db->from('evaluaciones'); $this->db->limit(10); $lBoards = $this->db->get(); return $lBoards; } [color=#BF0000][b]y en el formulario grid:[/b][/color] var dataRecord = new Ext.data.Record.create([ {name: 'Id_Evaluacion'} ]); var dataReader = new Ext.data.JsonReader({ root: 'data' }, dataRecord ); var dataProxy = new Ext.data.HttpProxy({ url: BASE_URL + 'pruebacont/mostrar_pendientes', method: 'POST' }); var dataStore = new Ext.data.Store({ autoLoad: true, proxy: dataProxy, reader: dataReader }); var colModel = new Ext.grid.ColumnModel([ {header: "Id_Evaluacion", sortable: true, dataIndex: 'Id_Evaluacion'}, ]); dataStore.load(); var gridCACExt = new Ext.grid.GridPanel({ store: dataStore, colModel:colModel, autoExpandColumn: 'company', title: 'CA. C.Externos', columnWidth:.33, height: 315, clicksToEdit:2, listeners : { rowdblclick:function(grid,rowIndex,e){ onRowClick(grid,rowIndex,e); } } }); y la respuesta del json es ({"total":"10","results":[{"Id_Evaluacion":"CA-CExt-2010-06-01"},{"Id_Evaluacion":"CA-CExt-2010-06-02"},{"Id_Evaluacion":"CA-CExt-2010-06-03"},{"Id_Evaluacion":"CA-CExt-2010-06-04"},{"Id_Evaluacion":"CA-CExt-2010-06-05"},{"Id_Evaluacion":"CA-Emgr-2010-06-01"},{"Id_Evaluacion":"CA-Emgr-2010-06-02"},{"Id_Evaluacion":"CA-Emgr-2010-06-03"},{"Id_Evaluacion":"CA-Emgr-2010-06-04"},{"Id_Evaluacion":"CA-Emgr-2010-06-05"}]}) Pero no se presentan los datos en el grid... Gracias.
0
Aunque no domino CodeIgniter te invito a revisar el [url=http://www.sencha.com/learn/Main_Page]centro de aprendizaje[/url] de la pagina oficial de ExtJs (ahora <!-- m -->http://www.sencha.com<!-- m -->, en ExtJs Commuity, Step-by-Step Tutorials) <!-- s:mrgreen: --><!-- s:mrgreen: --> especialmente el punto 1.6 Grids: <!-- m -->http://www.sencha.com/learn/Tutorials#Grids<!-- m --> De ellos el primero: Grids, PHP and SQL for newbies, es realmente explicado paso x paso (y funciona bien... solo le detecte un error al grabar el partido politico empleado el combox.. que debes corregir (pero revisa en tabla de MySQL y veras que si esta grabando).... pero este utiliza como back-end PHP y MySql respecto a tu tema revisa: Building a Grid with CodeIgniter, y nos comentas al respecto. Los otros son tutoriales mas genericos pero tambien muy interesantes...(aunque aun no reviso todos al detalle) Saludos [url=http://mlaynessanchez.blogspot.com]@Mlaynes[/url]
0
Tu problema radica en el reader, debes definir correctamente tu propiedad "root", actualmente tienes algo así:
root: 'data'
y en tu json que muestras no existe esa propiedad, tu le has llamado "results", correige eso y deberías funcionar. Saludos
0
Exactamente eso es lo que le sucede. Debe definir su propiedad Root como "result" o cambiarlo en el controlador y ponerlo a "data". Algo así. app.store.grid_elementos_config = new Ext.data.JsonStore({ url: 'index.php/elemento_configuracion/listar_elemento_configuracion_estado_dado_id_categoria', root: 'data', totalProperty: 'total', //baseParams: {start: 0, limit: 5}, fields: [ 'id_elemento_configuracion', 'id_categoria', 'nombre_categoria', 'nombre_elemento_configuracion', 'nombre_estado', 'id_estado', 'id_elemento_configuracion_estado' ] });

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.