Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Un solo archivo PHP

Estas en el tema de Un solo archivo PHP en el foro de Frameworks JS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/04/2013, 10:07
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 13 años, 6 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'
         
}
     },
     
autoLoadtrue
 
});

    
//Crea el Gridpanel
    
var grid Ext.create('Ext.grid.Panel', {
        
renderToExt.getBody(),
        
width500,
        
height300,
        
frametrue,
        
title'Usuarios',
        
//Cargo el store
        
storemyStore,
        
stripeRowstrue,
        
iconCls'icon-user',
        
        
//Defino las columnas
        
columns: [
            { 
id:'id'text'ID'width40sortabletruedataIndex'id'}, 
            { 
text'Usuario'width80sortabletruedataIndex'usuario'field: { xtype'textfield' }}, 
            { 
text'Contraseña',flex1sortabletruedataIndex'pass'field: { xtype'textfield' }}
        ],
        
        
//Agrego los botones
        
dockedItems: [{
            
xtype'toolbar',
            
items: [{
                
//Botón Agregar
                
name'agregar',
                
text'Agregar',
                
closabletrue,
                
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',
                    
bodyPadding5,
                    
width385,
                    
standardSubmittrue,

                    
// 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',
                        
allowBlankfalse
                    
}, {
                        
fieldLabel'Password',
                        
name'pass',
                        
inputType'password',
                        
allowBlankfalse
                    
}],

                    
// 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',
                        
formBindtrue//only enabled once the form is valid
                        
disabledtrue,
                        
//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...',
                            });
                        }
                    }],

                    
renderToExt.getBody()
                    });

                    
// Usamos un Window para mostrar el Nuevo Usuario en una ventanita
                    
var win = new Ext.Window(
                    {
                    
layout'fit',
                    
width400,
                    
height160,
                    
closablefalse,
                    
resizablefalse,
                    
plaintrue,
                    
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',
                
disabledtrue,
                
handler: function(){
                    var 
selection grid.getView().getSelectionModel().getSelection()[0];
                    if (
selection) {
                        
myStore.remove(selection);
                    }
                }
            }]
        }]
    });

    
grid.getSelectionModel().on('selectionchange', function(selModelselections){
        
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',
        
width500,
        
height400,
        
closablefalse,
        
resizablefalse,
        
plaintrue,
        
items: [grid// y acá cargamos el panel con el Nuevo Usuario

    
}
    );
    
//Muestro la ventana atras del panel
    
win.show();
    
}); 
  #2 (permalink)  
Antiguo 03/04/2013, 10:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Un solo archivo PHP

claro que sí, sólo debes de pasar un parámetro adicional a los request de AJAX y en un único archivo php comparas, algo así como la acción

aunque los expertos solemos usar una estructura MVC del lado de PHP con algún FW, y enviar las peticiones a URL amigables especificas como:

/modulo/controlador/ver
/modulo/controlador/actualizar
/modulo/controlador/eliminar

y por lo general todas las URL apuntan a un solo archivo PHP, consulte modelo MVC
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 03/04/2013, 10:24
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Un solo archivo PHP

Hola MaycolAlvarez Muchas Gracias por responder. Ahí estoy investigando el modelo MVC. Sería muchas molestia un pequeño ejemplo, para aclarar el concepto?.

Muchas Gracias
  #4 (permalink)  
Antiguo 03/04/2013, 11:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Un solo archivo PHP

Cita:
Iniciado por martin_9_91 Ver Mensaje
Hola MaycolAlvarez Muchas Gracias por responder. Ahí estoy investigando el modelo MVC. Sería muchas molestia un pequeño ejemplo, para aclarar el concepto?.

Muchas Gracias
me temo que es muy complejo de explicar para un solo post, lo que puedo hacer es recomendarte el FW PHP Codeigniter 2 para empezar, sólo por tener una de las curvas de aprendizaje más corta, pero recuerda que por políticas acarreadas del foro de PHP no se permite discutir que FW PHP es mejor, eso queda a elección del usuario.

Además implementar MVC en un estado avanzado del desarrollo de un aplicativo no es recomendable, ya que implica refactorización, por el cual si te encuentras en dicho caso lo mejor es que apliques lo del parámetro adicional, si estás aprendiendo ¡adelante!, el patrón MVC es uno de los más exitosos y conocer de él incrementará tus habilidades competitivas en el mercado, suerte
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 03/04/2013, 12:34
 
Fecha de Ingreso: mayo-2011
Ubicación: Bs.As Argentina
Mensajes: 193
Antigüedad: 13 años, 6 meses
Puntos: 3
Respuesta: Un solo archivo PHP

Muchas Gracias por responder, pero no entiendo por que usaría un FW PHP si yo lo único que tengo que hacer es consulta, insertar, modificar y eliminar registros de una base de datos. Es un sistema muy chico y la pantalla la dibujo con EXTJS. Que ventajas tendría al utiliza Codeigniter?.

Gracias
  #6 (permalink)  
Antiguo 04/04/2013, 11:11
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Un solo archivo PHP

Cita:
Iniciado por martin_9_91 Ver Mensaje
Muchas Gracias por responder, pero no entiendo por que usaría un FW PHP si yo lo único que tengo que hacer es consulta, insertar, modificar y eliminar registros de una base de datos. Es un sistema muy chico y la pantalla la dibujo con EXTJS. Que ventajas tendría al utiliza Codeigniter?.

Gracias
Muchas, pero como tu caso es simple concuerdo contigo, no hace falta, simplemente pasa un parámetro para identificar la acción y listo.

El verdadero motivo de usar MVC es cuando enfrentes proyectos más grandes, así que te aseguro que no pierdes nada en aprender MVC, no Codeigniter, te lo recomendé para aprender MVC, MVC es fundamental para cada programador hoy en día, y en el mercado laboral es indispensable, así como POO.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax, js, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:52.