[英]Pass extJs Grid Value to Store PHP Script
我目前有一个简单的extJS Grid,它可以从服务器中提取数据并将其呈现给查看器。 我想获取所选行的值,然后将其传递给另一个PHP脚本进行处理,以便在另一个网格中显示结果。
var roleInformationStore = Ext.create('Ext.data.Store', {
autoLoad: true,
autoSync: true,
model: 'RoleInformation',
proxy: {
type: 'ajax',
url: 'data.php',
reader: {
type: 'array',
},
writer: {
type: 'json'
}
}
});
var roleInformationGrid = Ext.create('Ext.grid.Panel', {
store: roleInformationStore,
width: '100%',
height: 200,
title: 'Roles',
columns: [
{
text: 'Name',
flex: 1,
width: 100,
sortable: false,
hideable: false,
dataIndex: 'role'
}
],
listeners: {
cellclick: function(view, td, cellIndex, record, tr, rowIndex, e, eOpts) {
roleInformationStore.proxy.extraParams = record.get('role');
//Ext.Msg.alert('Selected Record', 'Name: ' + record.get('role'));
}
}
});
使用当前网格中的侦听器,我可以获取值并使用alert方法显示它。 关于如何做到这一点的任何建议?
谢谢
为此, extraParams
必须是键值字符串对的对象,因为URI必须类似于data.php?key1=value1&key2=value2
。
在样式方面,Sencha建议尽可能使用getter和setter。
在一起,您将获得:
var store = Ext.getStore("roleInformationStore");
store.getProxy().setExtraParam("myRoleParamKey",record.get('role'));
store.load();
在PHP中,您将获得参数,然后使用
$role = $_GET['myRoleParamKey'];
当然,您可以用myRoleParamKey
替换myRoleParamKey
的任何字母数字文字,但是请确保在服务器端和客户端都使用相同的密钥。 ;-)
文件: setExtraParam
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.