环境:
* 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列。
感谢您的时间和思想。
答案 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;根据我的样本数据,参数和值是......
...在POST时是......
data%5B1%5D=This&data%5B2%5D=That
...... PHP认为是数组。