Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Extjs4 MVC将项目保存到服务器_Javascript_Extjs_Extjs4_Extjs4.1_Extjs Mvc - Fatal编程技术网

Javascript Extjs4 MVC将项目保存到服务器

Javascript Extjs4 MVC将项目保存到服务器,javascript,extjs,extjs4,extjs4.1,extjs-mvc,Javascript,Extjs,Extjs4,Extjs4.1,Extjs Mvc,我正在使用Extjs4.1 MVC。我试图做的是将一些数据保存到服务器,但我不知道正确的格式,也不知道应该如何将数据提交到服务器。 以下是我的想法,但我不认为Ajax调用应该在控制器中,它应该在模型或存储文件中 我的控制器中的方法: submit: function(value) { data = {"id": 100, "tdt": "rTk", "val": "445"} // test data Ext.Ajax.request({ url:

我正在使用Extjs4.1 MVC。我试图做的是将一些数据保存到服务器,但我不知道正确的格式,也不知道应该如何将数据提交到服务器。 以下是我的想法,但我不认为Ajax调用应该在控制器中,它应该在模型或存储文件中

我的控制器中的方法:

    submit: function(value) { 
    data = {"id": 100, "tdt": "rTk", "val": "445"}   // test data
    Ext.Ajax.request({
        url: 'http://test.myloc.com/providerSvc/dbproxy.php',
        params: {
          'do':'insert',
          'object': 'stk',
          'values': data
        },
        success: function(response){
            alert('response.responseText);
        }
    })
   }
我的商店:

Ext.define('STK.store.Stack', {
extend: 'Ext.data.Store',
model: 'STK.model.Stack',
autoLoad: true,
proxy: {
    type: 'ajax',
    api: {
          read: 'http://test.myLoc.com/providerSvc/dbproxy.php?do=get&object=stack'
    },
    reader: {
        type: 'json',
        root: 'data',
        successProperty: 'success'
    },
    writer: {
        type: 'json'            
    }
}
});
我的模型:

Ext.define('STK.model.Stack', {
extend: 'Ext.data.Model',
fields: ['id', 'tdt', 'val']
});

我认为商店是打ajax电话的合适地方

您可以通过将一条记录添加到存储中,然后调用“sync()”函数来“保存”它

类似这样的内容(注意:代码未测试):


我认为商店是打ajax电话的合适地方

您可以通过将一条记录添加到存储中,然后调用“sync()”函数来“保存”它

类似这样的内容(注意:代码未测试):

store.sync()
仅当GET和POST的端点相同时才起作用

你能做的就是,为了得到, 通过连接到URL或创建类似URL的对象来设置extraParams

extraParams[urlKeys] = paramObject[urlKeys];
store.getProxy().setExtraParams(extraParams);
那么

对于POST,编写一个AJAX请求,如下所示:

Ext.Ajax.request({
url : StoreURLForPOST,
method : 'POST',
jsonData : Ext.JSON.encode(YourPostData),
success : function(response, request) {},
failure : function(response, request) {}
});
对于这个AJAX请求,您可以

Ext.Ajax.setDefaultHeaders({
"TokenId" : TokenValue
});
所有这些代码都会进入控制器。

store.sync()
仅当GET和POST的端点相同时才起作用

你能做的就是,为了得到, 通过连接到URL或创建类似URL的对象来设置extraParams

extraParams[urlKeys] = paramObject[urlKeys];
store.getProxy().setExtraParams(extraParams);
那么

对于POST,编写一个AJAX请求,如下所示:

Ext.Ajax.request({
url : StoreURLForPOST,
method : 'POST',
jsonData : Ext.JSON.encode(YourPostData),
success : function(response, request) {},
failure : function(response, request) {}
});
对于这个AJAX请求,您可以

Ext.Ajax.setDefaultHeaders({
"TokenId" : TokenValue
});

所有这些代码都会进入控制器。

是的,这是有道理的,但是如何将这些数据发送到服务器以更新数据库?注意,我必须使用不同的url发布:{data here}这取决于服务器上的“监听”内容!ExtJS只执行一个标准的HTTP方法(通常是POST)。在你的服务器上,你必须有一些东西来处理这篇文章,比如PHP或ASP.NET等。你可以使用Firefox或Chrome开发工具来查看浏览器到底向服务器发送了什么。您将看到它只是纯文本,有一些特定的格式。服务器必须解释该文本并对其进行处理。在我的例子中,do=insertyes是有意义的,但如何将该数据发送到服务器以更新数据库?注意,我必须使用不同的url发布:{data here}这取决于服务器上的“监听”内容!ExtJS只执行一个标准的HTTP方法(通常是POST)。在你的服务器上,你必须有一些东西来处理这篇文章,比如PHP或ASP.NET等。你可以使用Firefox或Chrome开发工具来查看浏览器到底向服务器发送了什么。您将看到它只是纯文本,有一些特定的格式。服务器必须解释该文本并对其进行处理