如何将带有多个值的输出从extjs发送到Yii控制器操作

时间:2013-01-11 11:52:51

标签: extjs yii output

我在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动作呢?

1 个答案:

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