我正在使用Oleg的免费jqGrid。编辑完表单后,我尝试包装POST数据,以便在PHP中得到一个不错的数组,如:
Array(
oper => edit,
data => Array(
foo => '123',
bar => 'xyz',
...
)
)
运算符和运算所依据的数据在这里很好地分开了。
我的直观方法是这样的:
beforeSubmit: function( postdata, formid ) {
var d = {};
d.data = postdata;
console.log( d );
postdata = d;
return( [true, ''] );
}
不幸的是,这是行不通的。console.log(d)可以很好地打印所需的结果,但是postdata不会更改。我不精通javascript,但是我怀疑全局postdata不会从函数内部更改,但是不幸的是,该函数不允许我返回它。
关于如何解决此问题的任何建议。这是一个小问题,但是我只是认为它看起来更加结构化,并且更加易于维护,可以使操作员及其数据之间实现清晰的分离。
谢谢你。
beforeSubmit
在您的情况下,回调不是最佳选择。与其相反,我建议您使用serializeEditData
回调,您可以将其定义为表单编辑选项(在formEditing
jqGrid的参数内部)或jqGrid的参数。回调getpostdata
是唯一的参数,它应返回JSON字符串的修改后的对象,该对象应发送到服务器。该代码可能与以下内容有关
serializeEditData: function (postdata) {
var d = {
oper: postdata.oper,
data: $.extend(true, {}, postdata) // make copy
};
delete d.data.oper; // remove unneeded oper property
return d;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句