私は次のコードを使用しています:
var genres1 = new Ext.data.Store({
reader: new Ext.data.JsonReader({
fields: ['pincode','place_name'],
root: 'rows'
}),
proxy: new Ext.data.HttpProxy({
url: 'pointalong.php',
method: 'GET'
})
});
しかし、PHPファイルに3つのパラメーターを渡したいです。どのように処理する必要がありますか?また、phpファイルをどのように取得しますか。
2つの可能性があります。 1つ目は、store baseParams
configを使用することです。
var genres1 = new Ext.data.Store({
baseParams: {
param1: 'value1',
param2: 'value2'
},
// ...
2つ目は、 load メソッドを使用しているときにそれらを送信することです。
genres1.load({params: {param2: 'anotherValue'}});
注:paramsは、のbaseParamsをオーバーライドします同じ名前
したがって、上記の例のようにbaseParams
でストアを設定し、次にパラメータでload
を使用すると、ストアは...?param1=value1¶m2=anotherValue
を要求します。
...そしてどのように私はphpファイルを取得しますか
いつものように、URLパラメータを介して渡される変数--using $ _GET :
$param1 = $_GET['param1'];
私はこれを使用し、それは完璧に動作します
Ext.define('store.odon.DiagnosticoStore', {
extend : 'Ext.data.Store',
model : 'model.odont.DiagnosticoModel',
proxy: {
type: 'ajax',
api: {
create: CONTEXT_PATH + '/mvc/odona/crear',
read: CONTEXT_PATH + '/mvc/odon/lista',
update: CONTEXT_PATH + '/mvc/odon/update',
destroy: CONTEXT_PATH + '/mvc/odon/delete'
},
reader: {
type: 'json',
root: 'diagnosticos',
successProperty: 'success'
},
writer: {
type: 'json',
writeAllFields: true,
encode: true,
root: 'diagnosticos'
}
}
});
パラメータはストアをロードするために割り当てられます
var storeDiagnostico= getStore(); // Ext.create('store.odon.DiagnosticoStore');
storeDiagnostico.getProxy().setExtraParam("idOdontologia", value);
storeDiagnostico.load();
パラメータの値が変更される可能性がある場合(たとえば、別のフォームフィールドからのものである場合)、最も信頼できる方法は、次のように、ストアが読み込まれるたびにloadイベントの前にプロキシパラメータを適用することです。
Ext.create('Ext.data.Store', {
...
listeners:{
beforeload: function(store){
var filterText = Ext.getCmp('filterText').value;
store.getProxy().setExtraParam("filterText", filterText);
}
},