【发布时间】:2017-11-22 15:26:40
【问题描述】:
我很困惑。 我有一个可编辑的 OnDemandGrid,在它下面我有一个 dstore/Rest 集合指向我的后端(在 PHP 中)。
OnDemandGrid 与编辑器混合在一起...我可以编辑我的数据,但我无法保存它。我在服务器端收到的是一个“POST”请求,要求在集合中插入一整行......而且我从未收到更新。
我不应该收到一个 PUT 请求吗?我在数据中使用了 id...
这是客户端部分:
function (...)
{
var EditGrid = declare([ OnDemandGrid, Keyboard, Editor ]);
var coll = new Rest({
target: 'my.php/x/',
idProperty: 'id',
rangeStartParam: 'range',
rangeCountParam: 'limit',
sortParam: 'sort'
});
var grid = new EditGrid({ columns: {
user_name:{
label: 'User name',
editor: 'text',
editOn: 'click, dbclick',
autoSave: true,
}},
collection: coll }, 'grid' );
grid.startup();
}
我正确接收到 GET 查询以填充表格...然后,在编辑一行并点击“返回”后,我得到一个 POST!
这里显示的服务器端有点复杂......基本上,在 GET 上我执行 SQL 查询并将结果 json 化,而在 POST 上我只返回这个:
http_response_code(201);
header("location: ".$_SERVER['PATH_INFO'].$id);
$id 与我从请求中收到的 ID 相同...
POST 之后,我没有收到任何其他信息。在 POST 数据中,我只收到旧的、未修改的行的副本……我从来没有收到“新”的编辑数据。
在我看来,我应该在某个时候收到 PUT 请求...我尝试了浏览器调试器、服务器日志,但在任何地方都没有。
有人可以帮我吗?
【问题讨论】:
标签: javascript php dojo dgrid dstore