简短的描述..。
我的站点中有一个可编辑的jqWidgets网格,但与传统的可编辑网格不同,在编辑一行时,我不想更新数据库,而是在按下“保存”按钮时立即更新整个网格。
考虑到这一点,我只能看到两种可能的选择:
我的问题是,我根本不知道哪种方法更好,因为两者都有各自的复杂性。选项1上的查询字符串可能是天文数字,并且超过内存限制,因为用户试图通过POST请求传递网格的全部内容。但是,后一种解决方案可能会导致问题,因为它正在为网格中的每一行执行AJAX请求。想象一下,如果网格中有100行,甚至是1000行!!
我的问题
因此,有谁能在不超过内存限制的情况下想出一种有效的方法来实现这一点,同时又避免发出多个AJAX请求?
更多信息
如果上面的内容不清楚,请考虑以下javascript数组:
[
{ name: 'Ben', age: 23, occupation: 'Developer' },
{ name: 'Charlie', age: 24, occupation: 'Receptionist' },
{ name: 'Jemima', age: 18, occupation: 'Designer' }
]
现在,尝试确定在一个查询中将所有这些信息传递给PHP的最佳方法?
发布于 2014-07-14 09:57:49
在源对象上,有一个updaterow函数,它接受rowid、newdata和commit参数:
updaterow: function(rowid, newdata, commit)
newdata是一个json对象,表示网格中更新的行,提交是您需要调用的回调,以考虑已接受的更改。
在此函数中,您可以获取更新的rowdata对象,并根据rowid将其抛出到关联数组中(以确保更改的行只被发送一次)。最后,打电话
commit(true)
现在,您可以在单击按钮时调用一个函数,该按钮使用更新的行数据进行ajax发布:
var editedRows = {};
var source = {
localdata: [], // your data for the grid
datatype: 'json',
datafields: [
// define columns and types
],
updaterow: function(rowid, datarow, commit) {
editedRows[rowid] = datarow;
commit(true);
}
}
var saveData = function() {
// post editedRows, clear editedRows on success
};
https://stackoverflow.com/questions/24634285
复制相似问题