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

ドキュメントを読んでください:

mixed 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 に答える