0

为了在网格中获取选定的行,我使用这个:

'#deleteWorkerButton': {
                click: function(me, e, eOpts){
                    var grid = Ext.ComponentQuery.query('Worker')[0];
                    var selected = grid.getSelectionModel().getSelection()[0];

                    grid.getStore().remove(selected);
                }
            }

在我的商店中,我有发布此 JSON 的 url,但是当我使用 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);
4

2 回答 2

2

只需阅读文档

混合 json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
[...]
assoc 当为 TRUE 时,返回的对象将被转换为关联数组。

于 2012-11-20T08:47:53.493 回答
2

尝试添加allowSingle: false到编写器配置。默认情况下,它设置为 true,这意味着在没有数组包装的情况下发送单个记录更改。

于 2012-11-20T08:50:41.570 回答