我正在尝试复制一行,但我正在使用数据库中的数据,并且我正在使用 JSON 返回它。我想知道是否可以复制一行,是否可以限制复制行的次数。例如,我需要复制 id = 6 的行,但我需要对这一行进行 5 个副本。我怎样才能做到这一点?
问问题
1341 次
2 回答
0
使用 getRowData 从 jqgrid 中获取单行,然后通过 var s = new Array() 创建一个数组,并推送您想要的单行次数。
在 jqgrid 中创建一个新列 .. 使用格式化程序Formatter 在 jQgrid 中放置一个链接在该列写入处理程序中以单击该链接.. 在该处理程序上使用 getrowdata 并获取字段,然后进行 ajax 调用以发送到服务器.. .
于 2013-04-05T13:19:49.917 回答
0
您可以在服务器端而不是在客户端进行主要工作
在 jqgrid 声明中是这样的:
grid.jqGrid({
...
loadComplete: function(data) {
var ids = grid.jqGrid('getDataIDs');
for (var i=0;i<ids.length;i++) {
var id=ids[i];
var rowData = thisGrid.jqGrid('getRowData', id);
grid.jqGrid('setCell', id, 'buttons', '<input type="button" class="copy" value="Copy">');
}
$('button.copy').click(function (e) {
var id = $(e.target).parents('tr')[0].id;
$.ajax({
url: 'some_url',
dataType : "json",
data: {'id': id},
timeout: 10000,
type: 'POST',
success: function (data) {
grid.trigger('reloadGrid');
},
});
});
}
....
});
在 php 部分是这样的
$array = array(
'success'=>false
);
if(isset($_POST['id])) {
if($db -> num_rows($q = $db->query("SELECT FROM ... WHERE `id` = ".intval($_POST['id'])) == 1) {
$row = $db -> fetch_assoc($q);
$db->query("INSERT INTO .....);
$array['success'] = true;
}
}
echo json_encode($array);
如果要复制多次,可以在客户端添加一些对话框以输入副本数
于 2013-04-05T15:54:27.583 回答