web-dev-qa-db-ja.com

Ext.data.Storeにパラメータを渡す方法は?

私は次のコードを使用しています:

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ファイルをどのように取得しますか。

11
Pari

2つの可能性があります。 1つ目は、store baseParamsconfigを使用することです。

var genres1 = new Ext.data.Store({
    baseParams: {
        param1: 'value1',
        param2: 'value2'
    },
    // ...

2つ目は、 load メソッドを使用しているときにそれらを送信することです。

genres1.load({params: {param2: 'anotherValue'}});

paramsは、のbaseParamsをオーバーライドします同じ名前

したがって、上記の例のようにbaseParamsでストアを設定し、次にパラメータでloadを使用すると、ストアは...?param1=value1&param2=anotherValueを要求します。


...そしてどのように私はphpファイルを取得しますか

いつものように、URLパラメータを介して渡される変数--using $ _GET

$param1 = $_GET['param1'];
18
Molecular Man

私はこれを使用し、それは完璧に動作します

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();
15
Edy Aguirre

パラメータの値が変更される可能性がある場合(たとえば、別のフォームフィールドからのものである場合)、最も信頼できる方法は、次のように、ストアが読み込まれるたびにloadイベントの前にプロキシパラメータを適用することです。

 Ext.create('Ext.data.Store', {
    ...
    listeners:{
        beforeload: function(store){
            var filterText = Ext.getCmp('filterText').value;
            store.getProxy().setExtraParam("filterText", filterText);
        }
    },
5
Black