Как отправить вывод с несколькими значениями из extjs в действие контроллера Yii

Я работаю в extjs+yii. Моя серверная часть находится в фреймворке yii, а клиентская часть - в extjs. Теперь я хочу передать вывод кнопок отправки extjs в действие yii. Я создаю вопросник с несколькими вариантами ответов из 20 вопросов в extjs, фактические вопросы которых будут исходить от действия на стороне сервера, написанного на Yii framework. До этого работает корректно.

Теперь, после решения всех вопросов, пометив соответствующие переключатели в качестве ответа, при нажатии кнопки отправки я хочу отправить эти 20 вопросов userId, questionId и выбранную опцию переключателей в действие контроллера yii. Я написал действие кнопки отправки как:

     check:function()
            {
        console.log("Inside check function.");
        //creating objects in javascript
          var obj=new Object();
          for(var i=0;i<=5;i++)
          {
                var inputs = document.getElementsByName(i); 
                var radio = "";  
                for (var j = 0; j < inputs.length; j++) {
                    if (inputs[j].checked) {
                        name = inputs[j].name;
                        value  = inputs[j].value;
                        //obj[i].name1=name;
                        obj[i]={'questionId':name,'option':value};
                        console.log("questionId="+name +" value="+ value);
                        console.log("object name="+ obj[i].questionNo+" Object value="+obj[i].option);
                    }
                }
          }
    }
});

Итак, я получаю questionId и optionValue всех вопросов при нажатии кнопки отправки. Теперь я хочу отправить все данные questionid и optionValue в действие yii. Итак, как отправить его в действие extjs?


person user1722857    schedule 11.01.2013    source источник


Ответы (1)


Вы должны опубликовать свои данные в действии в контроллере с помощью AJAX, например: site/savequestions

   Ext.Ajax.request({
        url:"site/savequestions",
        method: "POST",
        params: {'qid': name, 'aid':value},
        success: function(){
            console.log("ok");
        },
        failure: function(response, opts){
            console.log("failed");
        },
        headers: { 'Content-Type': 'application/json' }
    });

и тогда в контроллере SiteController у вас будет

public function actionSavequestion()
{
    $questionId = Yii::app()->request->getParam('qid');
    $anserId = Yii::app()->request->getParam('aid');
    //... do stuff here

    echo json_encode(array('success' => true));
    exit()
}
person DarkMukke    schedule 23.10.2013