2010-11-22 86 views
2

我正在嘗試使用分頁系統(例如,每頁5篇文章)構建博客。 一切都很好,但分頁本身,但旁邊的每篇文章,我包括一個「刪除」按鈕,允許管理員動態(jquery)刪除相關文章及其內容。 我現在想要的是在刪除一篇文章時「追加」(不刷新)下一頁的第一篇文章,刪除另一篇文章時的第二篇文章,然後是第三篇文章等等。 我希望這樣做可以避免在沒有刷新的情況下刪除文章時留下空白頁面。刪除一篇文章,並從下一頁拉入第一篇

我實際上使用php和一個mysql數據庫來存儲數據 進行分頁我正在使用類似於這樣的東西 link

回答

0

我原本是在重複的答案,但認爲可能會被刪除,所以在這裏複製:

jQuery使它很好,很容易。這假定你有一個名爲ajax/delete-article.php的PHP文件,它將文章ID作爲參數刪除,並將頁面上最後一篇文章的文章ID作爲參數,並返回HTML下一篇文章。它還假定您的所有文章都有「文章」類,並且ID爲「article-230」,其中230是ID號。我相信你可以適應你自己的HTML結構。

$('.article-delete').click(function (event) { 
    $(this).closest('.article').remove(); // possibly use a more fancy-looking hide(), and remove on complete? 

    var lastArticleId = $('.article').last().attr('id').replace('article-',''); 
    var thisArticleId = $(this).attr('id').replace('article-',''); 
    $.get('ajax/next-article.php?last-article=' + lastArticleId + '&article-to-delete=' + thisArticleId ,function (data) { 
    $('#article-list').append(data); 
    }); 
    event.preventDefault(); 
}); 

請注意,這只是一個粗略的例子。將需要對健壯性進行一些改進。它也沒有經過測試,所以它可能會導致無處不在的JS錯誤。

+0

一個(顯而易見的)改進是隻在ajax調用成功時通過將隱藏/刪除代碼放入成功回調中才能刪除該元素 – 2010-11-22 11:40:44

+0

噢,這很明顯。稱之爲第一稿:) – 2010-11-22 11:48:29

+0

感謝球員問題解決=) – luca 2010-11-22 17:16:28

0

基本上,當您成功刪除一篇文章時,在SAME請求中(不要創建另一個文件,不需要),您還可以檢索最後一頁之後的下一篇文章(通過id,發佈日期或其他)並返回HTML代碼以附加

要清楚:如果我們假設您正在查看文章16,17,18,19,20,那麼您知道頁面中的最後一個元素是20.如果刪除了第17條,那麼您檢索元素21,在頁面中追加並將此值設置爲頁面21中的最後一個值(等等)

+0

是的,這可能是第一次刪除的文章。但如果我決定刪除另一個(沒有刷新)我怎麼說拉入不是下一頁的第一篇文章,但第二個等? – luca 2010-11-22 11:10:59

+0

每次你刪除你需要的東西時,還需要重新設置你在頁面中的最後一個值,這樣你就可以將它傳遞到新的請求中,正如我所說 – 2010-11-22 11:11:56

+0

我想我明白了=) – luca 2010-11-22 11:22:52

相關問題