PDA

View Full Version : Send a store to php-script with button-click



blade226
1 Mar 2013, 2:50 AM
Hi,

a have a grid on a site. The grid is based on a json store.

In the tbar is displayed a button, which should be send the store of the grid to a php-script.

How can i do that?


var mystore_bqfg = Ext.create('Ext.data.Store', {
fields:[

{name:'pid',type:'int'},
{name:'name',type:'string'},
{name:'vorname',type:'string'},
{name:'geburtsdatum',type:'string'},
{name:'geburtsland',type:'string'},
{name:'nationalitaet',type:'string'},
{name:'bael',type:'string'},
{name:'beruf',type:'string'},
{name:'abschluss',type:'string'},
{name:'bewerber',type:'string'}
]
,

proxy : {
type:"ajax",
url:"bqfg.php?pid="+sub,
timeout: 600000,

reader:{
type:"json"
},
writer: {
type: 'json',
writeAllFields: false,
//root: 'data'
}
}
});
mystore_bqfg.load();

var daten_bqfg = Ext.create ("Ext.grid.Panel" , {
//features: [{ftype:'grouping'}],
//collapsible: true,

multiSelect: true,
//title : "Abgleich",
store : mystore_bqfg,
autoScroll : true,
autoSave: true,
//width: 500,
height: '100%',

frame:true,
columns:[
{header:"Pid",dataIndex:"pid",flex:4},
{header:"Name",dataIndex:"name"},
{header:"Vorname",dataIndex:"vorname"},
{header:"Geburtsdatum",dataIndex:"geburtsdatum"},
{header:"Geburtsland",dataIndex:"geburtsland"},
{header:"Staatsangehörigkeit",dataIndex:"nationalitaet"},
{header:"Bael",dataIndex:"bael",flex:3},
{header:"Beruf",dataIndex:"beruf"},
{header:"Abschluß",dataIndex:"abschluss"},
{header:"Bearbeitungsstand",dataIndex:"bewerber",
editor: new Ext.form.field.ComboBox({
typeAhead: true,
triggerAction: 'all',
selectOnTab: true,
store: [
['Fehleintrag in SoPart - Eintrag wird korrigiert','Fehleintrag in SoPart - Eintrag wird korrigiert'],
['Einladung verschickt','Einladung verschickt'],
['erster Termin ohne EV','erster Termin ohne EV'],
['Beibringung von Unterlagen','Beibringung von Unterlagen'],
['Abschluss Eingliederungsvereinbarung','Abschluss Eingliederungsvereinbarung'],
['Vorprüfung','Vorprüfung'],
['anerkannter Berufsabschluss auf anderem Wege','anerkannter Berufsabschluss auf anderem Wege'],
['Antrag auf Anerkennung wurde gestellt','Antrag auf Anerkennung wurde gestellt'],
['negativer Besch. - Ausgleichsmaßnahme','negativer Besch. - Ausgleichsmaßnahme'],
['Ausgleichsmaßnahme bestanden','Ausgleichsmaßnahme bestanden']
],
lazyRender: true,
listClass: 'x-combo-list-small'
})


}
], selModel: {
selType: 'cellmodel'
}, plugins: [cellEditing],
tbar: [{
text: 'Drucken',
iconCls: 'icon-print',
handler : function(){
Ext.ux.grid.Printer.printAutomatically = false;
Ext.ux.grid.Printer.print(daten_bqfg);
}
},
{
text: 'Änderungen speichern',
iconCls: 'icon-save',
handler : function(){
//Send the store to datenabgleich.php//
}
}
]
});

THX for reply

scottmartin
1 Mar 2013, 7:59 AM
You can use Ext.Encode to send the json object as a param.

Scott.

blade226
4 Mar 2013, 12:13 AM
Hi,

can you please describe in more detail.
A small example would be great.
Especially how to start the php-script.

THX

scottmartin
4 Mar 2013, 6:21 AM
Can you detail what you want to do in words?

You want to send an object/array to the php-script as JSON?
What are you wanting to send?

Scott.

blade226
5 Mar 2013, 2:01 AM
I tried to describe my intention in words:

When someone clicked on the Button in the tbar, it will be sent the whole store of the grid as an array to a php script.
When the script done his work, it will be sent success and a message will be shown.

scottmartin
5 Mar 2013, 9:28 AM
Here is an example of sending an array of id's using an ajax call to the php script:



var users = [],
selRows = this.grid.getSelectionModel().getSelection();

for (var i = 0, rec; rec = selRows[i]; i++){
users.push({ id: selRows[i].data.id_user });
}

Ext.Ajax.request({
method: 'POST',
url: 'delete_users.php',
params : {
ids: Ext.encode(users) // list of users
},
success: function() { },
failure: function() { }
});


Scott.