EXT JS 4, PHP y MySQL (I) Coger datos
Hola gente.
He estado ocupado haciendo cosas (si, Peter, cosas nazis). Una de ellas es empezar a pelearme con EXT JS y como me está costando habituarme, voy utilizar el blog para ir recogiendo los cachos de código que más o menos ya les tengo una aplicación, para tenerlos de referencia por aquí para cuando no me acuerde de nada.
Una de las cosas más vitales que necesitaba sacarle a EXT JS era la necesidad de recoger datos, mediante PHP, de una base de datos MySQL y generar un grid con esos datos (y además meterlos en una ventana).
Si, por un casual, llegáis por el interés gracias a Google. Aquí tenéis un ejemplo práctico y sencillo. Se trata de recoger la información de una tabla de prueba cuyos campos son: id, nombre y apellido.
Supondremos que ya tenéis la librería ext js en su versión 4 y que ya sabéis como manejaros con las conexiones MySQL con PHP.
En fin, el archivo js ha de tener esta pinta.
Ext.onReady(function() {
// Crea el almacen de datos
var dbStore = new Ext.data.JsonStore({
totalProperty: 'total',
root: 'results',
proxy: {
type: 'ajax',
url: 'getdata.php', // archivo que contiene las operaciones mysql
actionMethods: {
create: 'POST',
read: 'POST',
update: 'POST',
destroy: 'POST'
},
reader: {
type: 'json',
root: 'results',
idProperty: 'nombre'
}
},
fields: [
{name: 'id', type: 'int'},'nombre', 'apellidos'
]
});
dbStore.load();
// Genera el grid
var listado=Ext.create('Ext.grid.Panel', {
store: dbStore, //datos del grid
columns: [
{
id:'id',
header: 'ID',
width: 30,
sortable: true,
dataIndex: 'id'
},
{
text: 'Nombre',
width: 100,
sortable: true,
hideable: false,
dataIndex: 'nombre'
},
{
text: 'Apellidos',
width: 150,
dataIndex: 'apellidos',
hidden: false,
sorteable: true
}
]
});
// Crea la ventana invocando dentro al grid
var gridWindow = new Ext.Window({
title: 'Listado',
layout: 'fit',
items: [
listado
]
});
// Muestra la ventana
gridWindow.show();
});
Y el archivo getdata.php
// incluye los datos de conexión al servidor
include "privado/bd.php";
$result=mysql_query ("SELECT * FROM prueba")
or die (mysql_error ());
$data = array();
while ($row=mysql_fetch_object($result)) {
$data [] = $row;
}
echo json_encode($data);
Con esto ya tenemos una comunicación exitosa entre mysql y EXT JS. Ahora toca averiguar como editar en vivo, actualizando la información de la BBDD.
Ale, al tajo.
¿Te gustó este artículo?
Aún no hay trackbacks.

27 agosto, 2012 - 05:25
A mi me ha sido de mucha utilidad este artículo.Soy nuevo en Extjs y aun no tengo el controle de la herramienta. Pero soy grato al autor de este articulo.Jose Bonfim (desde Brasil)
4 septiembre, 2012 - 01:08
Interesante lo voy a probar !!
gracias por tu explicacion
17 octubre, 2012 - 17:45
Excelente aporte, justo lo que estaba buscando. Lo probé y funciona a la perfección, estoy intentando poner algunas cosas mas.
Cuando defines el “gridWindow” no sale a buen tamaño la ventana así que le agregue lo siguiente:
height: 200,
width: 200,
29 abril, 2013 - 01:52
una pregunta… el archivo php a q nivel del proyecto debe d estar??
2 mayo, 2013 - 12:24
No se si entiendo lo que quieres decir. Si te refieres a los archivos, los php los tenía en el “raiz” y los js en el directorio “js/”