jQgrid在加载时发布自定义数据
想知道是否有人使用jQgrid在同一页面上发布来自另一个表单的动态数据。 动态,因为我不知道要发布的输入名称,而是在呈现网格时发布整个序列化表单。
我在postData中设置了额外的数据,但它没有正确地传递到url中,因为它看起来是双url编码的。 看到:
$(document).ready(function() { $("#rpt").jqGrid( { url:'/get.json', postData: {filter: $('form').serialize()}, datatype: "json", gridview: true, colModel:[id:'col1'] }); });
通过这里和其他网站上的各种线程,我已经在表单上尝试了建议的JSON.stringify和serializearray(),以及自定义函数无济于事。 表单数据显示为编码,另一方不能通过_GET获得。
任何建议都会很棒 – 谢谢!
我不确定您希望从服务器端的表单中获取数据的forms。 不过我建议您使用以下forms的postData
postData: { filter: function () { var result = {}, i, item, formInfo = $('form#myForm').serializeArray(), l = formInfo.length; for (i = 0; i < l; i++) { item = formInfo[i]; result[item.name] = item.value; } return JSON.stringify(result); } }
如果是以下测试表格
result
变量将是
var result = { a: "1 from a", b: "2 from b", c: "3 from c", d: "4", e: "5" }
因此,不会进行数据转换。 然后我建议使用JSON.stringify
将对象result
转换为JSON字符串。 (取决于服务器代码,可能不需要。)因此filters
参数将作为发送
{"a":"1 from a","b":"2 from b","c":"3 from c","d":"4","e":"5"}
您可以使用Fiddler或Firebug来检查相应小型演示的HTTP流量。