2016-10-17 6 views
1

私は現在、サーバからデータを取り出してビューアに提示する単純なextJSグリッドを持っています。私は選択された行の値を取得し、別のグリッドに結果を表示するために別のPHPスクリプトに渡して処理したいと思います。PHPスクリプトを保存するextJsグリッド値を渡す

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

現在のグリッドのリスナーを使用して、値を取得してアラートメソッドを使用して表示できます。どのようにこれを達成するための任意の提案? URIがdata.php?key1=value1&key2=value2のようなものである必要がありますので、

仕事のおかげで、このために

答えて

2

を、extraParamsは、キーと値の文字列のペアのオブジェクトである必要があります。

スタイルナイスで、可能な限り、ゲッターとセッターを使用することをお勧めします。一緒

、あなたが得る:PHPで

var store = Ext.getStore("roleInformationStore"); 
store.getProxy().setExtraParam("myRoleParamKey",record.get('role')); 
store.load(); 

を、あなたは

$role = $_GET['myRoleParamKey']; 

を使用して、パラメータになるだろうもちろん任意の英数字のためmyRoleParamKeyを置き換えることができ、必要なリテラルが、あなたを確認してくださいサーバー側とクライアント側の両方で同じキーを使用します。 ;-)

文書:setExtraParam

+0

これは完璧で簡潔です。ありがとうございました。最後に、ボタンクリックでグリッド行の値を取得したい場合は、そのClickから取得したパラメータをsetExtraParamパラメータに渡すだけですか? –

関連する問題