2010-08-17 14 views
0

嘿傢伙。一般來說,我對jQuery和JavaScript有點新鮮。我所擁有的是我正在升級的CMS。在這樣做的時候,我已經啓動了一個選項,通過複選框一次刪除多個類別,通過jquery/ajax處理。jQuery + PHP:從多個ID中刪除表中的行

在單獨刪除記錄時,我可以刪除表中的行,但現在有多個記錄和複選框,但我不太清楚如何處理這個問題。如果有幫助可言,這就是我一起工作(藉口,如果它的混亂,我不是太熟悉JS或jQuery的一般)...

// Process deleting multiple categories 
$("#delete_selected").click(function() { 

    $("#delete_loading").fadeIn("slow"); 
    var bool = confirm('Are you sure you want to delete the selected categories? This action cannot be undone.'); 

    if (bool == true) 
    { 
    var formDataString = $("#categoriesForm").serialize(); 

    $.ajax({ 
    type: "POST", 
    url: domain + "/admin/categories/delete_category/", 
    data: formDataString, 
    cache: false, 
    dataType: "html", 
    success: function() { 
    $("#delete_loading").fadeOut("slow"); 
    $('tr#' + id).fadeOut("slow"); 
    $('tr#' + id + ' td').fadeOut("slow"); 
    }, 
    error: function() { 
    $("#delete_loading").fadeOut("slow"); 
    $('#error').fadeIn("slow"); 
    } 
    }); 
    } 
    else { $('#error').show(); } 
    return false; 
}); 

感謝任何幫助或想法,你可以提供。正如你所看到的,在舊代碼中,我只是在處理後淡化了錶行,但不知道如何返回ID來隱藏PHP(我也使用Kohana框架)。

+0

演示頁面將在這裏有所幫助。 – Wayne 2010-08-17 02:16:52

回答

0

,你可以簡單地得到表內選中的元素,並刪除它們,如下

$('#tableId :checked').each(function(i, item){ 
    var $row = $(item).parent('tr:first'); 
    $row.fadeOut("slow"); 
    $('td', row).fadeOut("slow"); //i'm not sure why you need to hide tds after hiding the hole row 
}); 
0

什麼#categoriesForm是什麼呢? 輸入字段?

我看你用它來序列化它,如果我不記得錯誤,jquery應該有一個函數來將它轉換成一個數組。然後,用一個簡單的.each(),你可以從dom中刪除帶有.parent('tr:first')的行。正如Barakad所建議的那樣。

作爲一個方面說明,我不明白爲什麼你的ajax調用dataType:「html」...你期望什麼作爲返回值? 通常情況下,這樣的東西就像期望返回一個布爾值(成功時爲true,如果發生錯誤時爲false),或者包含所有細節的json消息。html dataType讓我覺得您更新頁面DOM時會使用ajax響應, 我錯了嗎?