如何将extjs数据发送到yii控制器操作

时间:2013-01-14 08:26:26

标签: extjs yii

  

可能重复:
  How to send output with multiple values from extjs to Yii controller action

我在extjs和Yii框架中工作。我在extjs中设计了多项选择题。 Yii控制器功能与extjs商店相连,以便从数据库中提供这些问题。

现在我想将用户选择的答案optionId保存到数据库中。即,从extjs我想发送论文所有用户解决的问题questionId与用户选择的optionId到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);
                    }// End of if statment
                }// End of inner for loop
          }//End of outer for loop
    }// End of check function
});//End of Controller

那么为了将所需数据发送到yii控制器动作,我需要做些什么修改。我真的需要帮助...

1 个答案:

答案 0 :(得分: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()
}