Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态复选框、单选、复选框组、射线组extjs_Javascript_Extjs - Fatal编程技术网

Javascript 动态复选框、单选、复选框组、射线组extjs

Javascript 动态复选框、单选、复选框组、射线组extjs,javascript,extjs,Javascript,Extjs,嗨,亲爱的朋友们 我在stackowerflow中搜索了这个问题,但没有一个对我有帮助 my model is like that: Ext.define('soru', { extend : 'Ext.data.Model', fields : [{ name : 'CEVAP', type : 'string' }, {

嗨,亲爱的朋友们

我在stackowerflow中搜索了这个问题,但没有一个对我有帮助

my model is like that:
Ext.define('soru', {
        extend : 'Ext.data.Model',
        fields : [{
                name : 'CEVAP',
                type : 'string'
                },
                {
                name : 'VALUE',
                type : 'int'
                },
                {
                name : 'RECNO',
                type : 'int'
                }
        ]
    });
我的商店就像:

checkboxArray = [];  
var myStoresoru = Ext.create('Ext.data.Store', {
        model : 'soru',
        id:'sorustore',
        proxy : {
            type : 'ajax',
            url : 'fetchsoru.php',
            reader : {
                type : 'json',
                root : 'data'
            }
        },
        listeners: {                                                                                                                          
                load: function(value, records, options) {                                                                                               
                    for(var i = 0; i < records.length; i++) { 
                           console.log(records);  
                           console.log(records.length);                                                                                
                      checkboxArray.push(new Ext.form.Checkbox(
                                    { 
                                        boxLabel: value.data.items[i].data.CEVAP,
                                        name: value.data.keys[i],
                                        xtype: 'checkbox',
                                        inputValue: value.data.items[i].data.VALUE,
                                        id: value.data.items[i].data.RECNO
                                    }));
                      //{id: records[i].data.id, boxLabel: records[i].data.pagetitle});                                              
                    }                                                                                                                               
                }  
            }, 

        autoLoad : false
    });                                                                                                                                   
myStoresoru.load();  
}))

及表格:

form = Ext.create('Ext.form.Panel', { items : [check]
    });

我的问题是,复选框没有加载到checkboxgroup中。当我在控制台上键入checckboxArray时,我可以看到checckboxArray存在,但我不知道为什么不显示checckboxes

问题是,将checkboxArray添加到checkboxGroup时,数组为空。当加载存储的ajax请求完成且数组已填充时,checkboxGroup中的项目不会更新

解决方案是在填充checkboxArray后将其添加到checkboxGroup:

...
  load: function(value, records, options) {                                                                                               
    for(var i = 0; i < records.length; i++) { 
      console.log(records);  
      console.log(records.length);                                                                                
      checkboxArray.push(new Ext.form.Checkbox(
        { 
            boxLabel: value.data.items[i].data.CEVAP,
            name: value.data.keys[i],
            xtype: 'checkbox',
            inputValue: value.data.items[i].data.VALUE,
            id: value.data.items[i].data.RECNO
        }));

      check.add(checkboxArray);

      //{id: records[i].data.id, boxLabel: records[i].data.pagetitle});                                              
   }

因为它本身已经是一个数组了。不过,这句话已经不需要了。

谢谢你重播我。我已经解决了,我想分享我的解决方案,以帮助在extjs中搜索动态复选框和chexbox组的人

在我的商店里,我写了我的checkboxgroup和radiogroup

var myStoresoru = Ext.create('Ext.data.Store', {
        model : 'soru',
        id:'sorustore',
        proxy : {
            type : 'ajax',
            url : 'fetchsoru.php',
            reader : {
                type : 'json',
                root : 'data'
            }
        },
        listeners: {                                                                                                                          
                load: function(value, records, options) {  

                     for(var i = 0; i < records.length; i++) { 

                           //console.log(records);  
                           //console.log(records.length); 
                        if(value.data.items[i].data.GROUPID==0)
                            {

                                checkboxGroupArray.push(new Ext.form.CheckboxGroup(
                                { 
                                    fieldLabel: value.data.items[i].data.SORU,
                                    labelWidth:300,
                                    border: '10 5 3 10',
                                    bodyPadding: 10,
                                    columns:2,
                                    id: value.data.items[i].data.RECNOSORU,
                                    xtype: 'checkboxgroup',
                                    originalValue:value.data.items[i].data.SORUTIPI
                                    //layout: 
                                }));
                            }
                            else
                            {
                                radioGroupArray.push(new Ext.form.RadioGroup(
                                { 
                                    fieldLabel: value.data.items[i].data.SORU,
                                    border: '10 5 3 10',
                                    bodyPadding: 10,
                                    labelWidth:300,
                                    columns:2,
                                    id: value.data.items[i].data.RECNOSORU,
                                    xtype: 'radiogroup',
                                    originalValue:value.data.items[i].data.SORUTIPI
                                }));
                            }


                    } }  
            }, 

        autoLoad : false
    });
var myStoresoru=Ext.create('Ext.data.Store'{
型号:“soru”,
id:'sorustore',
代理:{
键入:“ajax”,
url:'fetchsoru.php',
读者:{
键入:“json”,
root:“数据”
}
},
听众:{
加载:函数(值、记录、选项){
对于(var i=0;i
并在将支票盒和无线电波场加载到GROUP项目中后将其加载到表格中

var myStorecevap = Ext.create('Ext.data.Store', {
        model : 'cevap',
        id:'cevapstore',
        proxy : {
            type : 'ajax',
            url : 'fetchcevap.php',
            reader : {
                type : 'json',
                root : 'data'
            }
        },
        listeners: {                                                                                                                          
                load: function(value, records, options) {  

                     for(var i = 0; i < records.length; i++) { 

                           //console.log(records);  
                           //console.log(records.length); 
                           if(value.data.items[i].data.GROUPID==0)
                            {
                                checkboxArray.push(new Ext.form.Checkbox(
                                { 
                                    boxLabel: value.data.items[i].data.CEVAP,
                                    name: value.data.keys[i],
                                    xtype: 'checkbox',
                                    labelWidth:300,
                                    columns:2,
                                    inputValue: value.data.items[i].data.VALUE,
                                    id: value.data.items[i].data.RECNO,
                                    stateId:value.data.items[i].data.SORUTIPI
                                }));

                            }
                            else
                            {
                                radioArray.push(new Ext.form.Radio(
                                { 
                                    boxLabel: value.data.items[i].data.CEVAP,
                                    name: value.data.items[i].data.RECNOSORU,
                                    xtype: 'radiofield',
                                    labelWidth:300,
                                    columns:2,
                                    inputValue: value.data.items[i].data.VALUE,
                                   // id: value.data.items[i].data.RECNOS,
                                  // stateId:value.data.items[i].data.SORUTIPI


                                }));

                            }


                        //console.log(checkboxGroupArray);

                    }
                    //var totalcount=checkboxArray.length+radioGroupArray.length;

                    for(var i = 0; i < checkboxArray.length; i++) 
                        {
                            for(var j = 0; j < checkboxGroupArray.length; j++) 
                            {
                                console.log(value.data.items[i].data.RECNOSORU);
                                var den=value.data.items[i].data.RECNOSORU;
                                if(checkboxGroupArray[j].id==den) 
                                {
                                    checkboxGroupArray[j].add(checkboxArray[i]);
                                    console.log(checkboxGroupArray);
                                }
                            }
                        }
                    Ext.getCmp('forms').add(checkboxGroupArray);

                    for(var k = 0; k < radioArray.length; k++) 
                        {
                            for(var m = 0; m < radioGroupArray.length; m++) 
                            {
                                //console.log(value.data.items[k].data.RECNOSORU);
                                var denm=radioArray[k].name;
                                console.log(radioArray[k].name);
                                //console.log(radioGroupArray[m].id);
                                if(radioGroupArray[m].id==denm) 
                                {
                                    radioGroupArray[m].add(radioArray[k]);
                                    console.log(radioGroupArray[m]);
                                }
                            }
                        }
                    Ext.getCmp('forms').add(radioGroupArray);
                    arraytext.push(new Ext.form.TextArea(
                                {
                                    xtype     : 'textareafield',
                                    grow      : true,
                                    labelWidth:300,
                                    autoScroll   :    true,
                                    name      : 'message',
                                    id: 'message',
                                    fieldLabel: 'İlave Görüş ve Notlarınız',
                                    anchor    : '100%'
                                    }));


                    Ext.getCmp('forms').add(arraytext);



                }  
            }, 

        autoLoad : false
    });
var myStorecevap=Ext.create('Ext.data.Store'{ 型号:“cevap”, id:'cevapstore', 代理:{ 键入:“ajax”, url:'fetchecvap.php', 读者:{ 键入:“json”, root:“数据” } }, 听众:{ 加载:函数(值、记录、选项){ 对于(var i=0;ivar myStoresoru = Ext.create('Ext.data.Store', { model : 'soru', id:'sorustore', proxy : { type : 'ajax', url : 'fetchsoru.php', reader : { type : 'json', root : 'data' } }, listeners: { load: function(value, records, options) { for(var i = 0; i < records.length; i++) { //console.log(records); //console.log(records.length); if(value.data.items[i].data.GROUPID==0) { checkboxGroupArray.push(new Ext.form.CheckboxGroup( { fieldLabel: value.data.items[i].data.SORU, labelWidth:300, border: '10 5 3 10', bodyPadding: 10, columns:2, id: value.data.items[i].data.RECNOSORU, xtype: 'checkboxgroup', originalValue:value.data.items[i].data.SORUTIPI //layout: })); } else { radioGroupArray.push(new Ext.form.RadioGroup( { fieldLabel: value.data.items[i].data.SORU, border: '10 5 3 10', bodyPadding: 10, labelWidth:300, columns:2, id: value.data.items[i].data.RECNOSORU, xtype: 'radiogroup', originalValue:value.data.items[i].data.SORUTIPI })); } } } }, autoLoad : false });
var myStorecevap = Ext.create('Ext.data.Store', {
        model : 'cevap',
        id:'cevapstore',
        proxy : {
            type : 'ajax',
            url : 'fetchcevap.php',
            reader : {
                type : 'json',
                root : 'data'
            }
        },
        listeners: {                                                                                                                          
                load: function(value, records, options) {  

                     for(var i = 0; i < records.length; i++) { 

                           //console.log(records);  
                           //console.log(records.length); 
                           if(value.data.items[i].data.GROUPID==0)
                            {
                                checkboxArray.push(new Ext.form.Checkbox(
                                { 
                                    boxLabel: value.data.items[i].data.CEVAP,
                                    name: value.data.keys[i],
                                    xtype: 'checkbox',
                                    labelWidth:300,
                                    columns:2,
                                    inputValue: value.data.items[i].data.VALUE,
                                    id: value.data.items[i].data.RECNO,
                                    stateId:value.data.items[i].data.SORUTIPI
                                }));

                            }
                            else
                            {
                                radioArray.push(new Ext.form.Radio(
                                { 
                                    boxLabel: value.data.items[i].data.CEVAP,
                                    name: value.data.items[i].data.RECNOSORU,
                                    xtype: 'radiofield',
                                    labelWidth:300,
                                    columns:2,
                                    inputValue: value.data.items[i].data.VALUE,
                                   // id: value.data.items[i].data.RECNOS,
                                  // stateId:value.data.items[i].data.SORUTIPI


                                }));

                            }


                        //console.log(checkboxGroupArray);

                    }
                    //var totalcount=checkboxArray.length+radioGroupArray.length;

                    for(var i = 0; i < checkboxArray.length; i++) 
                        {
                            for(var j = 0; j < checkboxGroupArray.length; j++) 
                            {
                                console.log(value.data.items[i].data.RECNOSORU);
                                var den=value.data.items[i].data.RECNOSORU;
                                if(checkboxGroupArray[j].id==den) 
                                {
                                    checkboxGroupArray[j].add(checkboxArray[i]);
                                    console.log(checkboxGroupArray);
                                }
                            }
                        }
                    Ext.getCmp('forms').add(checkboxGroupArray);

                    for(var k = 0; k < radioArray.length; k++) 
                        {
                            for(var m = 0; m < radioGroupArray.length; m++) 
                            {
                                //console.log(value.data.items[k].data.RECNOSORU);
                                var denm=radioArray[k].name;
                                console.log(radioArray[k].name);
                                //console.log(radioGroupArray[m].id);
                                if(radioGroupArray[m].id==denm) 
                                {
                                    radioGroupArray[m].add(radioArray[k]);
                                    console.log(radioGroupArray[m]);
                                }
                            }
                        }
                    Ext.getCmp('forms').add(radioGroupArray);
                    arraytext.push(new Ext.form.TextArea(
                                {
                                    xtype     : 'textareafield',
                                    grow      : true,
                                    labelWidth:300,
                                    autoScroll   :    true,
                                    name      : 'message',
                                    id: 'message',
                                    fieldLabel: 'İlave Görüş ve Notlarınız',
                                    anchor    : '100%'
                                    }));


                    Ext.getCmp('forms').add(arraytext);



                }  
            }, 

        autoLoad : false
    });