0

可能重复:
如何将具有多个值的输出从 extjs 发送到 Yii 控制器操作

我正在使用 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 控制器操作。我真的需要帮助...

4

1 回答 1

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()
}
于 2013-01-15T08:56:32.127 回答