我有一个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 + "¤t_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>');
}
});
}
});
});