我正在尝试复制一行,但我正在使用数据库中的数据,而我正在使用JSON返回它。我想知道是否可以复制一行,如果可以分隔我可以复制行的次数。例如,我需要复制id = 6的行,但我需要为此行制作5个副本。我怎么能这样做?
答案 0 :(得分:0)
使用getRowData从jqgrid中获取一行,然后通过var s = new Array()创建一个数组,并按任意次数推送单行。
在jqgrid中创建一个新列...使用格式化程序Formatter In jQgrid在该列写入处理程序中放置一个链接以点击该链接..在该处理程序上使用getrowdata并获取字段然后进行ajax调用以发送到服务器......
答案 1 :(得分:0)
您可以在服务器端进行主要工作,而不是在客户端
在jqgrid decraration中是这样的:
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);
如果要复制多次,可以在客户端添加一些对话框以输入份数