如何将ext js 4中的对象数组发送到服务器端?

时间:2013-01-22 09:18:56

标签: php extjs extjs4 extjs-mvc

我在extjs4 MVC工作,我一直致力于创建问题答案页面功能。有4个问题可以显示有选项。我已经在控制器中获得所有选定的问题和答案。但我不知道如何使用模型方法发送到srver方面。我现在陷入困境。

这是我的一些控制器代码 1)

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].questionId+" Object value="+obj[i].option);
                    }// End of if statment
                }// End of inner for loop
          }//End of outer for loop

    }// End of check function

2)这里是我在firebug中得到了一些输出

questionId=1 value=Aus QbqnsController.js:39
questionId=2 value=india QbqnsController.js:39
questionId=3 value=England QbqnsController.js:39
questionId=4 value=Srilanka 

其实我想使用模型类方法save()。但我怎么能用呢 请给我一些建议。

3)这是我的模型类

Ext.define('Balaee.model.qb.QbqnsModel',{
    extend: 'Ext.data.Model',
    idproperty:'questionId',//fields property first position pk.
    fields: ['questionId','question','languageId','userId','creationTime','questionStatusId','keyword'],
    hasMany:{
            model:'Balaee.model.qb.QbqnsoptionModel',
            foreignKey:'questionId',
            name:'options',
        },


        proxy:
        {
            type:'ajax',
            api:
            {
                    read:'http://localhost/balaee/balaee/index.php?r=QuestionBank/qbpaper/setuseranswer',
                    create:'http://localhost/balaee/balaee/index.php?r=QuestionBank/qbpaper/setuseranswer',
            },//end of api
            reader:
            {
                    type:'json',
            },//end of reader
            writer:
            {
                    type:'json',
                    root:'records',
            },//End of writer
        }   

});

2 个答案:

答案 0 :(得分:1)

如果您正在使用Ext MVC并且model实例存储在store中,您可以使用store.sync()来批量处理不同的数据陈述(添加,编辑,删除等)并将它们与相关的商店或模型代理URL或指定的api url同步。

这有利于在单个请求中发送对象数组,但当然您需要在处理之前将它们在服务器端分开。

答案 1 :(得分:0)

在您的功能中,您可以使用Ext.Ajax.request

发送它们
    Ext.Ajax.request({

      url: 'your_server_page.php ',
        params: { 
           Your_Object_Name  : JSON.stringify(Your_Object_Array)
       }                                        
});