jQuery和jqGrid - For ...每个循环来提取数据

时间:2013-12-16 21:36:11

标签: javascript jquery for-loop jqgrid

环境:
* jquery-2.0.0.js
* jqSuitePHP_4_4_4_0

我有一个填充了数据的网格;对于网格中的每一行,我只想提取两列,每行相同的两列。我不需要行的jgGrid ID,因为我拥有自己的行,这是我追求的两个字段之一。我想要的第二个字段包含一个选择菜单 - 我想要的是值而不是字段的文本。

在我的实验中,我能想到的最好的方法是捕获每一行的全部内容并使用JSON对其进行编码以提交。

jQuery('#myGrid').jqGrid().jqGrid
(
    'navButtonAdd', '#myPager', 
    {
        ...

        onClickButton: function()
        {
            var grid = $('#myGrid');
            var data = JSON.stringify(grid.jqGrid('getGridParam', 'data'));

            request = $.ajax({
                url: 'process.php',
                type: 'post',
                data: data
            });
        }
    }
);

问题是我不想这样做。所以我一直坚持如何为...建立我的'数据'值,这可以在AJAX POST的示例代码中看到。我希望POST为1 = this& 2 =整数是我的行ID(我要捕获的第一个字段)和'this'和'that'是选择菜单的值(我想要的第二个字段)和取消JSON。

感谢您的帮助。

===编辑===
*添加样本网格
*突出显示正在挑战我的代码部分

+---------------------------------------------+
| Column 1 | * Column 2 | Column 3 | Column 4 |
|----------|------------|----------|----------|
| 1        | This       | Other    | Stuff    |
|----------|------------|----------|----------|
| 2        | That       | More     | Stuff    |
+---------------------------------------------+

*第2列实际上是一个选择菜单,而不是网格中用户看到的文本,我想要它们设置的基础值。对于对话,我们会说'This'= 100而'That'= 999.所以从上面的示例我想能够进行AJAX POST:

1 = 100
2 = 999

我的AJAX请求......

request = $.ajax({
    url: 'process.php',
    type: 'post',
    data: data
});

如何在上述AJAX请求中使用的变量'data'中得到1 = 100和2 = 999?我想我应该使用$ .each()但不确定,即使这是正确的我不知道除此之外的东西。我不想要第3或第4列。

感谢您的时间和思想。

1 个答案:

答案 0 :(得分:2)

所以这就是我自己提出来的,它很有效。

onClickButton: function()
{
    var data = {};
    var grid = $('#myGrid');
    var rows = grid.jqGrid('getDataIDs');

    for (i = 0; i < rows.length; i++)
    {
        var rowData = grid.jqGrid('getRowData', rows[i]);
        data[rowData['field1']] = rowData['field2'];
    }

    request = $.ajax({
        url: 'process.php',
        type: 'post',
        data: {data: data}
    });
}

这会产生一个我可以使用的POST;根据我的样本数据,参数和值是......

  • 数据[1] =此
  • 数据[2] =也就是说

...在POST时是......

data%5B1%5D=This&data%5B2%5D=That

...... PHP认为是数组。