Filter Row pero con datos de mysql
Buenos días:
Estoy tratando de hacer funcionar un ejemplo de grid que me permite buscar datos. El problema que tengo con el ejemplo es que los datos vienen en un array:
[CODE]
$price) {
continue;
}
if (!preg_match("/^$_REQUEST[change]/i", $change)) {
continue;
}
}
// when limit sent, show only first n results
$i++;
if (isset($_REQUEST["limit"]) && $i > $_REQUEST["limit"]) {
break;
}
$json[]= array(
"company" => $company,
"price" => $price,
"change" => $change,
);
}
echo json_encode(array("rows" => $json));
?>
[/CODE]
Lo que yo necesito es traer los datos desde la base de datos y cargarlos en la grid para luego buscar. Creé una con la misma estructura y los mismos datos. Pero no se como hacer el proceso de cargar el array y luego que me lo muestre.
Me pueden dar una orientación o algún ejemplo para analizarlo?
Desde ya, muchas gracias.
Pedro
Hoal @Peter3518 te comento que la proxima semana comienza la serie de tutoriales prometida, puedes ver el siguiente link:
http://foro.quizzpot.com/discussion/1075/tutorial-ci-extjs
Lgonzalez:
Gracias, el ejemplo que me mandaste adjunto esta b'arbaro. Traté de hacer funcionar el código pero no he tenido suerte, seguiré probando a ver si tengo suerte o buscaré algun ejemplo completo para experimentar.
Gracias nuevamente...
Pedro desde Uruguay
PHP y java puede ser editado con el bloc de notas... sino usá Notepad++ que es gratuito y colorea código. Que editor estas usando? porque si no te funciona el codigo de @lgonzalez alguna manera de editar tenes...
Gustavo:
Uso el Crinsom...me gustaría poder armar algo como lo de @lgonzalez pero loveo complicado sin referencias, te comento que soy un Analista de la vieja escuela de Cobol y Asse3nbler, por eso me cuesta un poco seguir el hilo a los códigos,,,hasta que le agarre la mano.
Gracias
Hola @Peter3518 si no te importa trabajar con CI puedo hacer una serie de manuales todos orientados a php con CI, y extjs3 pues aun estoy captando bien el ext4, si no hay problema por eso puedo comenzar a hacerlo.
Gracias por responder Gustavo.
SI, eso quiero hacer. El ejemplo tiene un array armado en el php y lo que quiero es que los datos vengan del Mysql. He probado pero no lo pude resolver.
Pedro
Bueno, yo te voy a dar un ejemplo Claro... dejame que te prepare algo y lo posteo... estoy medio trabado con el trabajo y no puedo ahora, pero te respondo igual para darte apoyo moral por lo menos jaja.
Te digo algo: Necesitas un PHP que haga la consulta y lo transforma a JSON. Necesitas un js que tome esos datos y arme el store. Necesitas tu app js con un grid que se llene en base a ese store.
Mas tarde te paso el codigo de algo fácil.
Saludos.
Gracias gustavo, la moral ya subió bastante...quedo a la espera. Mi correo es peter3518@gmail.com por si acaso.
Pedro
Holade nuevo. No tuve tiempo, estoy hasta las manos con unos problemas con los servidores en la fábrica, pero recordé que una de las primeras y pocas cosas que aprendí a hacer fue esto que querés hacer vos. Lo aprendí en estos 3 videos:
www.youtube.com/watch?v=RJBWA34E7q4
www.youtube.com/watch?v=yUvJdAmc0Nk
www.youtube.com/watch?v=u7vbwUlS668
Con esto podes hacer tus grids, despues vas a terminar sacando algunas cosas que estan de mas... lo malo es que no hay codigo fuente, asi que vas a tener que copiar del video.
Hola, espero que te sirva esto.
Ext.ns ( 'Ext.grid.quizzpot' );
Ext.grid.quizzpot.MainPanel = function ( config ) {
// tu store
var storeGridClientes = new Ext.data.GroupingStore({
url : 'clients/getAllClients' /*Aqui la ruta de json que trae los datos que mostraras en tu GRID*/
,reader : new Ext.data.JsonReader({
root : 'data' /*este es el root que trae los campo*/
,fields: [ /*Aqui van los campos que vienen en json*/
{name : 'clientes_id'}
,{name : 'clientesNombres'}
,{name : 'clientesApellidos'}
,{name : 'clientesCorreo'}
,{name : 'clientesTelefono'}
,{name : 'clientesCel'}
,{name : 'clientesWeb'}
,{name : 'clientesComentario'}
,{name : 'clientesOportunidades'}
,{name : 'groupName'}
,{name : 'clientesCat'}
,{name : 'icono'}
]
})
,groupField : 'groupName' /*aqui le dices como los quieres agrupar*/
});
storeGridClientes.load({ /*Cargamos el store*/
params:{
id:'demo' /*ponemos este parametro para no envie un parametro extra y la url se vea mas limpia*/
}
});
this.GridClientes = new Ext.grid.GridPanel({
title : 'Contactos' /*suponiendo que la ventana tendra el titulo contactos*/
,store : storeGridClientes /*aqui ponemos el store*/
,columns : [
{header : 'Codigo', dataIndex: 'clientes_id'}
,{header : 'Estado', dataIndex: 'clientesCat'}
,{header : 'Nombres', dataIndex: 'clientesNombres'}
,{header : 'Apellidos', dataIndex: 'clientesApellidos'}
,{header : 'EMail', dataIndex: 'clientesCorreo'}
,{header : 'Teléfono', dataIndex: 'clientesTelefono'}
,{header : 'Celular', dataIndex: 'clientesCel'}
,{header : 'Web', dataIndex: 'clientesWeb'}
,{header : 'Comentario', dataIndex: 'clientesComentario'}
,{header : 'Oportunidades', dataIndex: 'clientesOportunidades'}
,{header : 'Tipo', dataIndex: 'groupName'}
]
,view : new Ext.grid.GroupingView({
forceFit : true
,minWidth : 600
,autoWidth : true
,viewConfig : {forceFit: true}
,constrain : true
,constrainHeader : true
,autoHeight : true
,autoScroll : true
,showGroupName : true
,enableNoGroups : false
,enableGroupingMenu : true
,hideGroupedColumn : true
,groupTextTpl : '{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Registros" : "Registro"]})'
})
,viewConfig : {forceFit:true}
,frame : true
,autoScroll : true
,height : 250
,iconCls : 'icon-grid'
,bbar: [ /*si queremos paginar*/
new Ext.PagingToolbar({
pageSize: 100 /*esta es la cantidad de registros que queremos mostrar por pagina*/
,store: storeGridClientes /*hacemos referencia al store*/
,displayInfo: true
,displayMsg: 'Mostrando {0} - {1} de {2}'
,emptyMsg: "Vacio"
})
]
});
this.content = new Ext.TabPanel({ /*suponiendo que lo queremos poner en un tabpanel*/
region : 'center'
,margins : '3 3 3 0'
,activeTab : 0
,resizeTabs : true
,minTabWidth : 115
,tabWidth : 135
,enableTabScroll: true
,viewConfig : {forceFit:true}
,items : [this.GridClientes] /*metemos el grid*/
});
Ext.ux.clients.MainPanel.superclass.constructor.call(this, {
border : false
,layout : 'border'
,items : [this.content]
});
}
Ext.extend(Ext.grid.quizzpot.MainPanel, Ext.Panel, {
});
y para utilizarlo solo basta con poner lo siguiente en items de donde lo deseamos colocar;
new Ext.grid.quizzpot.MainPanell({})
y bueno el php basicamente es hacer la consulta y pintar el resultado en json con la estructura que le daras al GRID
PD: Este grid es un group grid en todo caso ahi te dejo un screen de como se veria al final.
¿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.