jqgrid - 使用数据库中的数据复制行

时间:2013-04-04 12:29:15

标签: jqgrid copy row

我正在尝试复制一行,但我正在使用数据库中的数据,而我正在使用JSON返回它。我想知道是否可以复制一行,如果可以分隔我可以复制行的次数。例如,我需要复制id = 6的行,但我需要为此行制作5个副本。我怎么能这样做?

2 个答案:

答案 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);

如果要复制多次,可以在客户端添加一些对话框以输入份数