Как передать параметр в 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'
})
});
но я хочу передать 3 параметра в файл php. как я должен работать? а также как я могу получить файл php.
Ответы
Ответ 1
Есть две возможности. Первым из них является использование store baseParams
config:
var genres1 = new Ext.data.Store({
baseParams: {
param1: 'value1',
param2: 'value2'
},
// ...
Второй - отправить их, когда вы используете load метод:
genres1.load({params: {param2: 'anotherValue'}});
Примечание: params переопределит любые базовые пары с тем же именем
Итак, если вы настроите хранилище с baseParams
как в примере выше, а затем используйте load
с параметрами, которые магазин запросит ...?param1=value1¶m2=anotherValue
.
... а также как я могу получить в php файле
Как обычно, переменная передается через параметры URL-адреса - используя $_ GET:
$param1 = $_GET['param1'];
Ответ 2
Я использую это, и он отлично работает
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();
Ответ 3
Если значение параметра может измениться (например, если оно исходит из другого поля формы), самым надежным способом является применение параметра прокси до события загрузки при каждом загрузке магазина следующим образом:
Ext.create('Ext.data.Store', {
...
listeners:{
beforeload: function(store){
var filterText = Ext.getCmp('filterText').value;
store.getProxy().setExtraParam("filterText", filterText);
}
},