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流量。