通过json使用复选框在分页表中添加行太多次

时间:2011-06-21 11:56:31

标签: javascript jquery ajax

我有一个AJAX表设置为每页显示5行。

当我在第二页上选择2行进行删除时,通过复选框按#delete_selected这两行将从当前页面中删除,第三页的下两行应该附加在剩下的3行下面第2页。

我似乎无法解决的问题是,当我选择多个复选框时,例如2个复选框。下一页的下两行确实通过json(data.nextrow)附加到当前页面,但它们会被附加两次,或三次等,具体取决于我选择了多少个复选框。所以我最终得到3 +(2 * 2)行而不是3 + 2。

有什么想法吗?

我的脚本的删除部分:

// deleten met checkboxes
    $('a#delete_selected').live('click', function() {

        var current_page = $('span.current_page').html();

        var data = new Array();

        $("input[name='checkdelete']:checked").each(function(i) {
                data.push($(this).val());
        });

        var checkbox_parent = $("input[name='checkdelete']:checked").parent().parent().parent();

        checkbox_parent.css('background-color', '#dc143c');
        confirm('Weet u zeker dat u dit nieuwsartikel wilt verwijderen?')

        var current_page = $('span.current_page').html();
        var previous_page = current_page - 1;

        $.ajax({
            type: "POST",
            url: "php/news/delete_news.php",
            data: "delete_selected=" + data + "&current_page=" + current_page,
            dataType: "json",

            success: function(data) {
                $(checkbox_parent).slideUp(400, function() {
                    $(this).remove();
                    if($('div.tr').length == 0) {
                        if(current_page != 1) {
                            $("div.append-table").load("php/news/load_news.php?goto_page=" + previous_page);
                        }
                    }
                    var last_page = data.last_page;
                    var max_results = data.max_results;
                    var total_results = data.total_results;

                    if(current_page != last_page && $('div.rows').children().length > 1 || total_results == last_page * max_results && current_page == last_page) {
                        $(data.nextrow).hide().appendTo('div.rows').slideDown(400);
                    }
                    if(total_results == 0) {
                        $('div.rows').html('<p class="table-empty-msg">Er zijn geen nieuwsberichten gepubliceerd.<p>');
                    }
                });
            }
        });
    });

0 个答案:

没有答案