PDA

View Full Version : Troubles with values on dynamic form editing from grid



ricardorios
1 Dec 2010, 6:28 AM
Hello people, thanks for reading my post. I have an issue editing my dynamic form, when i send the values of the combos, it sends the label but not the value to the url that receives my data.

For Example, on a combo i have

LABEL: EXAMPLE VALUE VALUE: INDEX1

When i clic send, it sends EXAMPLE VALUE, and Not INDEX1

Any help will be greatly appreciated.

Here is My Full Code:


Ext.ns('com.saagep.reasignacion_presupuestaria');

com.saagep.reasignacion_presupuestaria.Form = {

init: function() {
//Inicio los hints del grid
Ext.QuickTips.init();
//Ejecuto la variable store donde recibo los datos del grid via Php/Json
var store = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url:'../JSON/asignaciones_presupuestarias.php',
method: 'POST',
}),
reader: new Ext.data.JsonReader({
root: 'data',
totalProperty: 'total'
}, [
{name: 'cod_proyecto'},
{name: 'correlativo'},
{name: 'organismo'},
{name: 'fuente_recursos'},
{name: 'descripcion'},
{name: 'alcance'},
{name: 'objeto'},
{name: 'localizacion'},
{name: 'sector'},
{name: 'coordenadas'},
{name: 'asignado'},
{name: 'fecha'}
])
});
//Cargo los datos del store del grid
store.load();
//Cargo la variable donde va a estar el páginado
var pager = new Ext.PagingToolbar({
pageSize: 10,
store: store, // <--grid y el paginado usan la misma variable
displayInfo: true,
plugins: new Ext.ux.ProgressBarPager()
});
//Cargo la función para expandir las celdas
AjaxRowExpander = function(config, previewURL){
AjaxRowExpander.superclass.constructor.call(this, config, previewURL);
this.previewURL = previewURL;
this.enableCaching = false;
}


//Cargo los datos del grid en una variable
var grid = new Ext.grid.GridPanel({
store: store, // <--grid y el paginado usan la misma variable
columns: [
new Ext.grid.RowNumberer(),
{
id: "id",
header: "Proy. No.",
dataIndex: 'correlativo',
width: 90,
sortable: true
},
{
header:'Organismo',
dataIndex:'organismo',
width:90,
sortable: true,

},
{
header:'F. Recursos',
dataIndex:'fuente_recursos',
width:90,
sortable: true
},
{
header:'Descripción',
dataIndex:'descripcion',
width:190,
sortable: true
},
{
header:'Monto',
dataIndex:'asignado',
width:90,
sortable: true
},
{
header:'Fecha Aprob.',
dataIndex:'fecha',
width:90,
sortable: true,
renderer: this.fecha
}
],
bbar: pager, // <-- Añado el paginado al grid
border: false,
stripeRows: true
});
//Cargo una ventana, a la cual le voy a insertar el grid
var win = new Ext.Window({
title: 'Proyectos Creados / Reasignación Presupuestaria',
layout: 'fit',
width: 700,
height:300,
items: grid, // <-- Cargo la variable del grid en en la ventana
closable: false,
resizable: false
});
//Muestro la ventana
win.show();
//Cargo los eventos
//El primero es el mouseover para mostrar el hint dependiendo de la posición donde este el mouse
grid.on('mouseover', function(e,t) {
if(grid.getView().findRowIndex(e.target)!=null) {
var store = grid.getStore(); // Capture the Store.
var view = grid.getView(); // Capture the GridView.
var idx = view.findRowIndex(e.target);
if (idx!=false) {
var row = store.getAt(idx);
var rowID = row.get('correlativo')
Ext.Ajax.request({
url: '../tooltips/tooltip_asignacion_presupuetaria.php',
method: 'post',
success: function(object) {
grid.tip = new Ext.ToolTip({
target: view.mainBody,
delegate: '.x-grid3-row',
trackMouse: true,
renderTo: document.body,
animate:true,
listeners: {
beforeshow: function updateTipBody(tip) {
var rowIndex = view.findRowIndex(tip.triggerElement);
tip.body.dom.innerHTML = object.responseText;
}
}
});
},
params:
{
get_data: 'toolTip',
get_id: rowID
}
});
}
}
});

//Cargo un formulario al hacer doble clic sobre una celda
grid.on('rowdblclick',this.editarProyecto);

},
//Ejecuto la función para editar el proyecto
editarProyecto: function(grid,index,event){

var record = grid.getStore().getAt(index);
//Ext.Msg.alert('Prueba de Selección de Proyecto','Proyecto No: 'record.get('correlativo'));

var organismos = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: '../JSON/organismos.php',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'data'
}, [
{name: 'valor'},
{name: 'organismo'}
])
});

var recursos = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: '../JSON/recursos.php',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'data'
}, [
{name: 'valor'},
{name: 'fuente'}
])
});

var form = new Ext.form.FormPanel({
width:550,
url:'asignacion_presupuestaria2.php',
bodyStyle:'margin-left:10px;',
border:false,
labelWidth: 80, //Con esto hacemos mas pequeñas las etiquetas
defaults: {
xtype:'textfield',
width:400
},
items:[
{
xtype:'hidden',
id:'correlativo',
name:'correlativo_1'
},
{
xtype:'combo',
labelStyle: 'font-weight:bold;',
fieldLabel:'Organismo',
name:'organismo',
mode: 'remote',
minChars: '1',
selectOnFocus:true,
emptyText:'Organismo Responsable del Proyecto...',
id:'organismo',
triggerAction:'all',
store:organismos,
displayField: 'organismo',
hiddenname: 'organismo',
valueField: 'valor',
allowBlank:false
},
{
xtype:'combo',
labelStyle: 'font-weight:bold;',
fieldLabel:'F. Recursos',
name:'fuente_recursos',
mode: 'remote',
minChars: '1',
selectOnFocus:true,
emptyText:'Fuente de Recuros del Proyecto...',
id:'fuente_recursos',
hiddename:'fuente_recursos',
triggerAction:'all',
store:recursos,
displayField: 'fuente',
valueField: 'valor',
allowBlank:false
},
{
fieldLabel:'Descripción',
labelStyle: 'font-weight:bold;',
id:'descripcion',
name: 'descripcion',
emptyText:'Descripción del Proyecto...',
allowBlank:false
},
{
xtype:'textarea',
fieldLabel:'Alcance',
labelStyle: 'font-weight:bold;',
id:'alcance',
name:'alcance',
emptyText:'Alcance del Proyecto...',
allowBlank:false
},
{
xtype:'textarea',
fieldLabel:'Objeto',
labelStyle: 'font-weight:bold;',
emptyText:'Objeto del Proyecto...',
id:'objeto',
name:'objeto',
allowBlank:false
},
{
fieldLabel:'Localización',
labelStyle: 'font-weight:bold;',
id:'localizacion',
emptyText:'Localización del Proyecto...',
name:'localizacion',
allowBlank:false
},
{
fieldLabel:'Sector',
labelStyle: 'font-weight:bold;',
id:'sector',
name:'sector',
emptyText:'Sector donde se ubica el Proyecto...',
allowBlank:false
},
{
fieldLabel:'Ubicación',
labelStyle: 'font-weight:bold;',
id:'coordenadas',
emptyText:'Coordenadas de Ubicación del Proyecto...',
name:'coordenadas',
allowBlank:false
},
{
xtype: 'numberfield',
fieldLabel:'Monto',
labelStyle: 'font-weight:bold;',
id:'asignado',
name:'asignado',
emptyText:'Monto Asignado del Proyecto (Solo Números)...',
allowBlank:false
},
{
xtype: 'datefield',
fieldLabel: 'Fecha',
emptyText:'Fecha de Aprobación del Proyecto...',
name: 'fecha',
id: 'fecha',
editable: false,
emptyText:'Fecha de Aprobación del Proyecto...',
labelStyle: 'font-weight:bold;',
allowBlank:false
},
{
xtype: 'hidden',
name: 'MM_Update',
id: 'MM_Update',
value: 'form1'
}
]
});

form.getForm().loadRecord(record);

var win = new Ext.Window({
title: 'Editar Proyecto / Rasignación Presupuestaria. Proyecto # ' + record.get('correlativo'),
width:550,
height:440,
modal: true,
bodyStyle: 'padding:10px;background-color:#fff',
buttons: [
{
text:'Ingresar',
formBind: true,
itemCls: 'centrado',
handler:function(){
form.getForm().submit({
method:'POST',
waitTitle:'Conectando',
waitMsg:'Enviando datos...',
success: function(form,action){
Ext.Msg.alert('Proyecto Modificado', 'Se han actualizado los datos satisfactoriamente del proyecto # ' + action.result.proyecto, function(btn){
if (btn == 'ok'){
Ext.Msg.show({
title:'¿Desea Modificar también las Obras?',
msg: 'Se han modificado los datos del proyecto ' + action.result.proyecto + ', ¿desea actualizar también los datos de la(s) obra(s)?',
buttons: Ext.Msg.YESNO,
fn: function(btn) {
if(btn == 'yes'){
win.hide();
EditarObras(action.result.proyecto,action.result.obra);
}
if(btn == 'no') {
win.close();
}
},
animEl: 'elId',
icon: Ext.MessageBox.QUESTION
});
}
});
}
});
}
},
{
text: 'Cancelar',
formBind: true,
itemCls: 'centrado',
handler:function(){
form.getForm().reset();
}
}
],
items: [form]
});

win.show();

},

EditarObras: function(index){
},

imagen: function(value,metadata,record){
return '<img src="'+value+'" alt="'+record.get('title')+'" />';
},

titulo: function(value, metadata, record){
metadata.attr = 'style="white-space:normal"';
return '<strong>'+value+'</strong>';
},

moneda: function(value){
return 'Bs.F. '+value;
},

fecha: function(value) {
variable = value.split("-");
fecha_nueva = variable[2] + "/" + variable[1] + "/" + variable[0];
return fecha_nueva;
},

dar_formato: function(num){
var cadena = ""; var aux;
var cont = 1,m,k;
if(num<0) aux=1; else aux=0;
num=num.toString();
for(m=num.length-1; m>=0; m--){
cadena = num.charAt(m) + cadena;
if(cont%3 == 0 && m >aux) cadena = "." + cadena; else cadena = cadena;
if(cont== 3) cont = 1; else cont++;
}
cadena = cadena.replace(/.,/,",");
return cadena;
},
}

Ext.onReady(com.saagep.reasignacion_presupuestaria.Form.init,com.saagep.reasignacion_presupuestaria.Form); And here are the parts of the above code, where i have the issue.


//Stores
var organismos = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: '../JSON/organismos.php',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'data'
}, [
{name: 'valor'},
{name: 'organismo'}
])
});

var recursos = new Ext.data.Store({
autoLoad: true,
proxy: new Ext.data.HttpProxy({
url: '../JSON/recursos.php',
method: 'POST'
}),
reader: new Ext.data.JsonReader({
root: 'data'
}, [
{name: 'valor'},
{name: 'fuente'}
])
});
//Comboboxes extracted from related code
{
xtype:'combo',
labelStyle: 'font-weight:bold;',
fieldLabel:'Organismo',
name:'organismo',
mode: 'remote',
minChars: '1',
selectOnFocus:true,
emptyText:'Organismo Responsable del Proyecto...',
id:'organismo',
triggerAction:'all',
store:organismos,
displayField: 'organismo',
hiddenname: 'organismo',
valueField: 'valor',
allowBlank:false
},
{
xtype:'combo',
labelStyle: 'font-weight:bold;',
fieldLabel:'F. Recursos',
name:'fuente_recursos',
mode: 'remote',
minChars: '1',
selectOnFocus:true,
emptyText:'Fuente de Recuros del Proyecto...',
id:'fuente_recursos',
hiddename:'fuente_recursos',
triggerAction:'all',
store:recursos,
displayField: 'fuente',
valueField: 'valor',
allowBlank:false
}