我正在使用以下代码:
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文件。
答案 0 :(得分:17)
有两种可能性。第一个是使用商店baseParams
config:
var genres1 = new Ext.data.Store({
baseParams: {
param1: 'value1',
param2: 'value2'
},
// ...
第二个是在使用load方法时发送它们:
genres1.load({params: {param2: 'anotherValue'}});
注意: params 将覆盖任何同名的 baseParams
因此,如果您使用上面示例中的baseParams
设置商店,然后使用带有参数的load
商店将请求...?param1=value1¶m2=anotherValue
。
...以及我如何获得php文件
通常通过网址参数传递的变量 - 使用$_GET:
$param1 = $_GET['param1'];
答案 1 :(得分:14)
我使用它并且效果很好
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();
答案 2 :(得分:4)
如果参数的值可能会改变(例如,如果它来自另一个表单字段),那么最可靠的方法是在每次加载存储时在load事件之前应用代理参数,如下所示:
Ext.create('Ext.data.Store', {
...
listeners:{
beforeload: function(store){
var filterText = Ext.getCmp('filterText').value;
store.getProxy().setExtraParam("filterText", filterText);
}
},