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 に答える