【问题标题】:Delete an article and pull in the first one from next page删除一篇文章并从下一页拉入第一篇
【发布时间】:2011-05-13 18:44:36
【问题描述】:

我正在尝试使用分页系统构建博客(例如,每页 5 篇文章)。 分页本身一切都很好,但在每篇文章旁边我都包含一个“删除”按钮,允许管理员动态删除(jquery)相关文章及其内容。 我现在想要的是在我删除一篇文章时“附加”(不刷新)下一页的第一篇文章,当我删除另一篇文章时添加第二篇,然后是第三篇,依此类推。 如果我继续删除文章而不刷新,我希望避免出现空白页。

我实际上是在使用 php 和一个 mysql 数据库来存储数据 对于分页,我正在使用类似的东西 link.

【问题讨论】:

    标签: jquery pagination article


    【解决方案1】:

    我最初在副本上回答,但认为可能会被删除,所以在这里复制:

    jQuery 让它变得又好又简单。这假设您有一个名为 ajax/delete-article.php 的 php 文件,该文件将要删除的文章 ID 作为参数,并将页面上最后一篇文章的文章 ID 作为参数,并返回 HTML下一篇文章。它还假设您的所有文章都具有“article”类,并且 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 错误。

    【讨论】:

    • 一个(明显的)改进是仅在 ajax 调用成功时删除元素,而是将隐藏/删除代码放在成功回调中
    • 哦,是的……这很明显。称之为初稿:)
    【解决方案2】:

    基本上,当您成功删除一篇文章时,在 SAME 请求中(不要再创建一篇,没有必要),您还会检索(如果有)最后一页之后的下一篇文章(按 id、发布日期或其他)并返回 HTML 代码以追加

    要明确:如果我们假设您正在查看文章 16、17、18、19、20,您知道页面中的最后一个元素是 20。如果您删除文章 17,那么您检索元素 21,附加到页面并设置此值 21 作为页面中的最后一个值(依此类推)

    【讨论】:

    • 是的,对于第一个删除的文章来说可能没问题。但是,如果我决定删除另一个(不刷新),我该怎么说不要拉入下一页的第一篇文章,而是第二篇等等??
    • 每次删除某些内容时,您还需要重新设置页面中的最后一个值,以便您可以将其传递到新请求中,正如我所说的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 2021-10-17
    • 2022-11-02
    • 1970-01-01
    • 2018-07-22
    相关资源
    最近更新 更多