0

我在 ExtJS 中有一个复选框网格面板,我想将选定的行发布到 PHP 函数。

当用户单击按钮时,应将所选行发送到 php,然后 php 通过$_REQUEST作为参数获取此行。

有人能指出我在 PHP 中发布数组和解码的正确方向吗?

该模型 :

    Ext.define('LabelModel', {
        extend: 'Ext.data.Model',
        fields: 
        [
            {name: 'LABEL_ID', type: 'int'},
            {name: 'STORE_NO', type: 'int'},
            {name: 'DNR_NO', type: 'int'},
            {name: 'DNR_DESCRIPTION', type: 'string'},
            {name: 'DEPARTMENT', type: 'int'},
            {name: 'ARTICLE_NO', type: 'int'},
            {name: 'SUBSYS_ARTICLE_NO', type: 'int'},               
            {name: 'ARTICLE_DESCRIPTION', type: 'string'},
            {name: 'ARTICLE_TYPE', convert: checkType},
            {name: 'START_DATE', type: 'date', dateReadFormat: 'd.m.Y', submitFormat: 'd.m.Y'},
            {name: 'END_DATE', type: 'date', dateReadFormat: 'd.m.Y', submitFormat: 'd.m.Y'},
            {name: 'PRODUCT_PRICE', type: 'float'},
            {name: 'UNIT_PRICE', type: 'float'},
            {name: 'SHELF_PRICE', type: 'float'},
            {name: 'LABEL_TEXT', type: 'string'},
            {name: 'STATUS', type: 'string'},
            {name: 'COLLI_CONTENT', type: 'int'},
            {name: 'ACTUAL_STOCK', type: 'int'},
            {name: 'PWHG', type: 'int'},
            {name: 'PWG', type: 'int'},
            {name: 'MP_NO', type: 'int', convert: checkType},
            {name: 'INVOICE_TEXT', type: 'string', convert: checkType},
            {name: 'LABEL_TYPE', type: 'string'},
            {name: 'LABEL_SIGN', type: 'string', convert: checkType}
        ]
    });

商店:

    var labels = Ext.create('Ext.data.JsonStore', {
        model: 'LabelModel',
        successProperty: 'success',
        proxy: {
            type: 'ajax',
            url: 'lib/db/get-label-list.php',
            timeout: 120000,
            reader: {
                type: 'json',
                root: 'labelList',
                idProperty: 'LABEL_ID'
            }
        }
    });  

按钮处理程序:

                    xtype: 'button',
                    width: 90,
                    text: 'GÖNDER',
                    cls: 'x-btn-gonder',
                    handler: function(){
                        var ppt     = Ext.getCmp('labelType').getValue();
                        var sb      = Ext.getCmp('basic-statusbar');
                        var count   = Ext.getCmp('labelGrids').getSelectionModel().getCount();
                        var rows    = Ext.getCmp('labelGrids').getSelectionModel().getSelection();
                        var cmb     = Ext.getCmp('labelType');
                        if(ppt == null) {
                            dialog.show();
                        } else {
                        if(count > 0) {
                            for (var i = 0; i < count; i++)
                            {
                                console.log(rows[i].data.LABEL_TYPE, rows[i].data.LABEL_ID);
                                cmb.reset();    // clear combobox selected value after send to printer
                            }
                            // set statusbar text after print
                            sb.setStatus({
                                text: 'Etiketler yazıcıya gönderildi..!',
                                iconCls: 'x-status-saved',
                                clear: true
                            });
                            // remove checked items
                            Ext.select('.x-grid-row-selected').each(function (element) {
                                Ext.getCmp('labelGrids').getSelectionModel().deselectAll();
                            });
                        } else if(count == 0) {
                            sb.setStatus({
                                iconCls: 'x-status-error',
                                text: 'Lütfen yazdırmak istediğiniz etiketleri seçiniz!'
                            });
                        }                           
                        winPaper.hide();
                        }
                    }
4

0 回答 0