0

我在 extjs+yii 工作。我的服务器端在 yii 框架中,客户端在 extjs 中。现在我想将 extjs 的提交按钮输出传递给 yii 动作。我正在用 extjs 创建包含 20 个问题的多项选择题,其实际问题将来自用 Yii framewok 编写的服务器端操作。到目前为止,它工作正常。

现在通过将其各自的单选按钮标记为答案来解决所有问题后,单击提交按钮我想发送这 20 个问题userIdquestionId并选择单选按钮选项到 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);
                    }
                }
          }
    }
});

所以我得到了关于提交按钮点击的所有问题questionIdoptionValue现在我想将所有questionidoptionValue数据发送到 yii 动作。那么如何将它发送到 extjs 动作呢?

4

1 回答 1

0

您应该使用 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-10-23T11:04:31.303 回答