jquery - jQgrid 在加载时发布自定义数据

标签 jquery 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 在另一端获取。

任何建议都会很棒 - 谢谢!

最佳答案

我不确定您希望以哪种形式从服务器端的表单中获取数据。尽管如此,我还是建议您使用以下形式的 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);
    }
}

如果是以下测试表格

<form id="myForm">
  <div><input type="text" name="a" value="1 from a" id="a" /></div>
  <div><input type="text" name="b" value="2 from b" id="b" /></div>
  <div><input type="hidden" name="c" value="3 from c" id="c" /></div>
  <div>
    <textarea name="d" rows="8" cols="40">4</textarea>
  </div>
  <div><select name="e">
    <option value="5" selected="selected">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
  </select></div>
  <div>
    <input type="checkbox" name="f" value="8" id="f" />
  </div>
</form>

结果变量将为

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"}

您可以使用FiddlerFirebug查看对应小demo的HTTP流量.

关于jquery - jQgrid 在加载时发布自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8565848/

相关文章:

javascript - 如何在 jqgrid 高级搜索对话框中本地化按钮工具提示

javascript - jQuery 的条件加载

php - 从 mysql 数据库中突出显示日期选择器中的事件

php - Jqgrid自定义格式如果为负值则使用括号()

checkbox - 如何使用 Firebug 跟踪不显眼的 onclick

javascript - 根据放置在行中的键/值对(如 ID)在 jqGrid 行上设置类或标识符

javascript - 脚本组织模式(MVC + jQGrid)

javascript - 如何从网址中删除#prettyphoto

jquery - getscript 在 .load 函数中不起作用

jquery - 将变量发送到 JQuery 函数