В ExtJS могу ли я вызвать цикл for и оператор if внутри Ajax-запроса, чтобы определить мои параметры?

#ajax #extjs #for-loop #if-statement #ajax-request

#ajax #extjs #for-loop #if-statement #ajax-запрос

Вопрос:

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

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

Пока у меня есть это..

     function submitEntry(){
        Ext.Ajax.request({
                         url: '../../inc/project4.php',
                                var obj = Ext.select('input[type=checkbox]').elements;
                                var i = 0;
                        for (i=0; i<obj.length; i  ) {
                            if (obj[i].checked) {
                                params:{
                                    symptom[]: obj[i].getId()
                                    }
                                }
                            }
                             params: {action: 'create_input',
                                description: entryBox.getRawValue(),
                         },
                                    method: 'POST',
                        success: function(f,a){
                            var jsonData = Ext.util.JSON.decode(f.responseText);
                            if(jsonData.success == true){
                                Ext.Msg.alert("Success!", "Your journal entry has been sent!");
                                entryStore.reload();
                                entryBox.reset();
                            }
                            else{
                                Ext.Msg.alert("Error! Please check your entry and try again.")
                            }
                        },
                        failure: function(f,a){
                            if(jsonData.success == false){
                                Ext.Msg.alert("Error! Please check your entry and try again.");
                            }
                        }
                         });
    }
  

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

Заранее большое вам спасибо за любую помощь!

Ответ №1:

Если вам нужно более одного выражения для сбора ваших флажков, вы должны собрать их перед вызовом Ext.Ajax.request .

 var checkboxes = Ext.select(...);
// do other stuff to get just the checkboxes you want

Ext.Ajax.request({
   url: "...",
   params: checkboxes,
   ...
});