Отображать сетку столбцов с флажками и метками, чтобы флажки можно было щелкать и отправлять в PHP - PullRequest
2 голосов
/ 03 октября 2019

Я хотел бы отобразить в одной сетке флажки и метки данных, чтобы метки были доступны только для чтения, а флажки можно было нажимать, а их результат можно было отправлять в серверную часть PHP. Цель этого окна - связать некоторые статьи заказа с метками изображений.

EXT JS with Ext.grid.ColumnModel: 
setCM : function(){
        var checkColumn = new Ext.grid.CheckColumn({
               header: 'Choix',
               dataIndex: 'NOM_LOGO',
               align : 'center',
               width: 50
            });

        // add the column to the column model
        this.cm = new Ext.grid.ColumnModel([
               checkColumn,
               {
                   header: 'Nom Logo',
                   dataIndex: 'NOM_LOGO'
               }
        ]);
    },
EXT JS without Ext.grid.ColumnModel and with renderer:
    setCM : function(){
        this.cm = new Ext.grid.ColumnModel({
            columns: [         
                 {
                     dataIndex: 'NOM_LOGO',
                     name: 'LOGO_PRODUIT_ASSOCIE',
                     width: 50,
                     renderer: function(value, meta) {
                         var checked = (value == 1 ? 'checked = "checked"' : '');
                         return '<input type="checkbox" value="'+value+'" '+checked+' />';
                     }
                 },{
                    header: "Nom Logo",
                    dataIndex: 'NOM_LOGO',
                    width: 300
            }]
        });
    },
PHP function : 
    private function editerLogosCommandeProduit($nocde, $codpro, $lstLogosAssocies) {
        $this->dissocierLogosProduit($nocde, $codpro);
        if (is_array($lstLogosAssocies) && (count($lstLogosAssocies) > 0)) {
            $this->associerLogosProduit($nocde, $codpro, $lstLogosAssocies);
        }
    }

Actually, those things are observed:
-> Whether I use the Ext.grid.CheckColumn Class and checboxes are displayed but not clickable
-> Whether I use the Renderer function in Ext JS which is easier to use but I don't know how to send data to PHP. Furthermore, even if I add the name porperty in the checkbox, it does not appear in the HTML Inspection in the browser.

1 Ответ

0 голосов
/ 04 октября 2019
var checkLogo = new Ext.grid.CheckColumn({
    dataIndex: 'CHECKED',
    editable: true,
    width: 28,
});

setCM : function(){
        this.cm = new Ext.grid.ColumnModel({
            columns: [         
                checkLogo,
                {
                    header: "Nom Logo",
                    dataIndex: 'NOM_LOGO',
                    width: 300
            }]
        });
    }
...