为了在网格中获取所选行,我使用:
'#deleteWorkerButton': {
click: function(me, e, eOpts){
var grid = Ext.ComponentQuery.query('Worker')[0];
var selected = grid.getSelectionModel().getSelection()[0];
grid.getStore().remove(selected);
}
}
在我的商店中,我有发布此JSON的网址,但是当我使用json_decode时,我得到了这个:
object(stdClass) {
id => "5";
name => "tets";
email => "era@sdfsa.com";
phone => "test";
}
但我需要array()
,而不是stdClass
。
这是我的商店:
Ext.define('Sabrina.store.Workers', {
extend: 'Ext.data.Store',
fields:['id', 'name', 'email', 'phone'],
proxy: {
type: 'ajax',
api: {
create : 'php/usuarios.php?action=insert',
read : '../mega_sabrina_cake/workers/index',
update : 'php/usuarios.php?action=update',
destroy : '../mega_sabrina_cake/workers/delete'
},
actionMethods: {
create : 'POST',
read : 'POST',
update : 'POST',
destroy : 'POST'
},
reader: {
type: 'json',
root: 'Worker',
rootProperty: 'Worker',
successProperty: 'success',
messageProperty: 'message'
},
writer: {
type: 'json',
writeAllFields: true,
root: 'data',
encode: true
},
},
autoLoad: true,
autoSync: true
});
所以,我用它来删除数据。在json_decode()?
时,我可以用我的商店来获取“NORMAL”数组我认为问题在于:
grid.getStore().remove(selected);
答案 0 :(得分:2)
请阅读the docs:
混合json_decode(字符串$ json [, bool $ assoc = false [,int $ depth = 512 [,int $ options = 0]]])
[...]
的 ASSOC 强> 如果为TRUE,则返回的对象将转换为关联数组。
答案 1 :(得分:2)
尝试将allowSingle: false
添加到编写器配置中。默认情况下,它设置为true,这意味着在没有数组换行的情况下发送单个记录更改。