Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2013, 10:07
martin_9_91
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 15 años, 4 meses
Puntos: 3
Un solo archivo PHP

Hola Amigos, espero que anden bien. Les comento que soy nuevo con EXTJS y estoy haciendo un ABM, para ello utilizo un store, un panel y le agrego unos botones. Mi problema viene con este tema, yo para el store utilizo un archivo .php, después para insertar utilizo otro archivo php y ahora quiero programar el botón eliminar y tengo que agregar otro archivo php. Hay alguna forma de utilizar solamente un archivo php o es imposible?.

Muchas Gracias

Este es mi código

Código PHP:


//Ejecuto el OnReady y crea el form
Ext.onReady(function(){
 
 
//Creo el DataModel
 
Ext.define('User', {
     
extend: 'Ext.data.Model',
     
fields: [
         {
name: 'id', type: 'int'},
         {
name: 'usuario',  type: 'string'},
         {
name: 'pass',       type: 'string'}
     ]
 });

 
//Creo el Store
 
var myStore = Ext.create('Ext.data.Store', {
     
model: 'User',
     
proxy: {
         
type: 'ajax',
         
//Código PHP
         
url: '../php/UsData.php',
         
reader: {
             
type: 'json',
             
root: 'users'
         
}
     },
     
autoLoad: true
 
});

    
//Crea el Gridpanel
    
var grid = Ext.create('Ext.grid.Panel', {
        
renderTo: Ext.getBody(),
        
width: 500,
        
height: 300,
        
frame: true,
        
title: 'Usuarios',
        
//Cargo el store
        
store: myStore,
        
stripeRows: true,
        
iconCls: 'icon-user',
        
        
//Defino las columnas
        
columns: [
            { 
id:'id', text: 'ID', width: 40, sortable: true, dataIndex: 'id'}, 
            { 
text: 'Usuario', width: 80, sortable: true, dataIndex: 'usuario', field: { xtype: 'textfield' }}, 
            { 
text: 'Contraseña',flex: 1, sortable: true, dataIndex: 'pass', field: { xtype: 'textfield' }}
        ],
        
        
//Agrego los botones
        
dockedItems: [{
            
xtype: 'toolbar',
            
items: [{
                
//Botón Agregar
                
name: 'agregar',
                
text: 'Agregar',
                
closable: true,
                
iconCls: '',
                
//Agrego el formulario agregar
                
handler: function(){
                    
//Creo el panel y le paso los datos a login
                    
var login = Ext.create('Ext.form.Panel', {
                    
title: 'NUevo Usuaro',
                    
bodyPadding: 5,
                    
width: 385,
                    
standardSubmit: true,

                    
// Petición Ajax
                    
url: '../php/UsInsert.php',

                    
//Defino el layout
                    
layout: 'anchor',
                    
defaults: {
                    
anchor: '100%'
                    
},

                    
// Defino los campos
                    
defaultType: 'textfield',
                    
items: [{
                        
fieldLabel: 'Usuario',
                        
name: 'usuario',
                        
allowBlank: false
                    
}, {
                        
fieldLabel: 'Password',
                        
name: 'pass',
                        
inputType: 'password',
                        
allowBlank: false
                    
}],

                    
// Defino los botones
                    
buttons: [ 
                        {    
                        
text: 'Salir',
                        
//Indico que hacer al presionar el boton Cancelar
                        
handler: function () {
                            
//Sale del formulario
                            
login.hide();
                            
win.hide();
                        }
                    },
                    {
                        
text: 'Grabar',
                        
formBind: true, //only enabled once the form is valid
                        
disabled: true,
                        
//Indico que hacer al presionar el botón login
            
                        
handler: function () {
                            
login.getForm().submit({
                                
method: 'POST',
                                
waitTitle: 'Insertando',
                                
waitMsg: 'Grabando en la base de datos...',
                            });
                        }
                    }],

                    
renderTo: Ext.getBody()
                    });

                    
// Usamos un Window para mostrar el Nuevo Usuario en una ventanita
                    
var win = new Ext.Window(
                    {
                    
layout: 'fit',
                    
width: 400,
                    
height: 160,
                    
closable: false,
                    
resizable: false,
                    
plain: true,
                    
items: [login] // y acá cargamos el panel con el Nuevo Usuario

                    
}
                    );
                    
//Muestro la ventana atras del panel
                    
win.show();
                }
            },    
                
//Termina el formulario agregar
                
{
                
//Botón Eliminar
                
itemId: 'delete',
                
text: 'Eliminar',
                
iconCls: 'icon-delete',
                
disabled: true,
                
handler: function(){
                    var 
selection = grid.getView().getSelectionModel().getSelection()[0];
                    if (
selection) {
                        
myStore.remove(selection);
                    }
                }
            }]
        }]
    });

    
grid.getSelectionModel().on('selectionchange', function(selModel, selections){
        
grid.down('#delete').setDisabled(selections.length === 0);
    });

    
// Usamos un Window para mostrar el Nuevo Usuario en una ventanita
    
var win = new Ext.Window(
    {
        
layout: 'fit',
        
width: 500,
        
height: 400,
        
closable: false,
        
resizable: false,
        
plain: true,
        
items: [grid] // y acá cargamos el panel con el Nuevo Usuario

    
}
    );
    
//Muestro la ventana atras del panel
    
win.show();
    
});