2010-11-22 2 views
2

Я пытаюсь создать блог с системой разбиения на страницы (например, 5 статей на страницу). Все в порядке с самой страницей, но рядом с каждой статьей я включил кнопку «удалить», позволяющую администратору удалять динамически (jquery) соответствующую статью и ее содержимое. Теперь я хочу «добавить» (без обновления) первую статью следующей страницы при удалении статьи, вторую, когда удаляю другую статью, затем третью и так далее. Я хочу, чтобы это не содержало пустой страницы, если я продолжаю удалять статьи без обновления.Удалите статью и вытащите ее со следующей страницы

Я использую php и базу данных mysql для хранения данных для разбивки на страницы Я использую что-то похожее на это link.

ответ

0

Я первоначально ответил на дубликате, но думаю, что, возможно, удаляются, поэтому копирование здесь:

jQuery делает его приятным и легким. Предполагается, что у вас есть php-файл с именем ajax/delete-article.php, который принимает идентификатор статьи для удаления в качестве параметра и идентификатор статьи последней статьи на странице в качестве параметра и возвращает HTML-код следующая статья. Он также предполагает, что все ваши статьи имеют класс «статья», а идентификатор «статья-230», где 230 - идентификационный номер. Я уверен, что вы можете адаптировать его к своей собственной структуре 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 преуспел, поместив код hide/remove в обратный вызов успеха вместо –

+0

О да ... это очевидно. Назовите это первым проектом :) –

+0

спасибо, ребята, проблема решена =) – luca

0

В основном, когда вы успешно удаляете статью, в ОДНОМ запросе (не делайте другого, не нужно) вы также получаете и (если есть) следующую статью после последней страницы (по id, дате публикации или другим) и верните код HTML, чтобы добавить

, чтобы быть ясным: если мы предполагаем, что вы ищете статьи 16,17,18,19,20, вы знаете, что последний элемент на странице - 20. Если вы удалите статью 17, тогда вы получить элемент 21, добавьте в страницу и установить это значение 21 в качестве последнего значения в странице (и так далее)

+0

Да, это может быть нормально для первой удаленной статьи. но если я решил удалить другой (без обновления), как я могу сказать, чтобы вставить не первую статью следующей страницы, а вторую и так далее? – luca

+0

каждый раз, когда вы удаляете что-то, вам нужно также повторно установить последнее значение, которое у вас есть на странице, чтобы вы могли передать его в новый запрос, как я сказал – 2010-11-22 11:11:56

+0

. Думаю, что я получу его =) – luca

Смежные вопросы