Как передать параметр в Ext.data.Store? - PullRequest
11 голосов
/ 13 марта 2012

Я использую следующий код:

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'
   })
});

, но я хочу передать 3 параметра в мой файл php.как мне пройти?а также как я могу получить в php файл.

Ответы [ 3 ]

17 голосов
/ 13 марта 2012

Есть две возможности. Первый - использовать store baseParams config:

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

Второй способ - отправить их, когда вы используете load method:

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

Примечание : params переопределит любые baseParams с тем же именем

Таким образом, если вы настроили хранилище с baseParams, как в примере выше, а затем использовали load с параметрами, хранилище запросит ...?param1=value1&param2=anotherValue.


... а также как мне получить php файл

Как обычно, переменная передается через параметры URL - с помощью $ _ GET :

$param1 = $_GET['param1'];
14 голосов
/ 17 августа 2013

Я использую это, и он отлично работает

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();
4 голосов
/ 19 марта 2014

Если значение параметра может измениться (например, если оно исходит из другого поля формы), то наиболее надежным способом является применение прокси-параметра перед событием загрузки при каждой загрузке хранилища, как показано ниже:

 Ext.create('Ext.data.Store', {
    ...
    listeners:{
        beforeload: function(store){
            var filterText = Ext.getCmp('filterText').value;
            store.getProxy().setExtraParam("filterText", filterText);
        }
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...