Exclua um artigo e puxe no primeiro da próxima página
-
27-09-2019 - |
Pergunta
Estou tentando construir um blog com um sistema de paginação (por exemplo, 5 artigos por página). Tudo está bem com a paginação em si, mas, ao lado de cada artigo, incluí um botão "excluir", permitindo que o administrador remova dinamicamente (jQuery) o artigo relacionado e seu conteúdo. O que eu quero agora é "anexar" (sem atualizar) o primeiro artigo da próxima página quando excluo um artigo, o segundo quando excluo outro artigo, depois o terceiro e assim por diante. Quero que isso evite ter uma página em branco se continuar excluindo artigos sem atualização.
Na verdade, estou usando o PHP e um banco de dados MySQL para armazenar dados para pagar estou usando algo semelhante a estelink.
Solução
Eu respondi originalmente na duplicata, mas acho que isso pode ser excluído, então copiar aqui:
JQuery torna bom e fácil. Isso pressupõe que você tenha um arquivo php chamado Ajax/delete-ticle.php, que leva um ID do artigo a ser excluído como um parâmetro, e o artigo do último artigo da página como um parâmetro e retorna o HTML do Próximo artigo. Ele também pressupõe que todos os seus artigos tenham a classe "Artigo" e o artigo do ID "230", onde 230 é o número de identificação. Tenho certeza de que você pode adaptá -lo à sua própria estrutura 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();
});
Observe que este é apenas um exemplo difícil. Exigirá algumas melhorias para a robustez. Também é não testado, para que possa lançar erros de JS em todos os lugares.
Outras dicas
Basicamente, quando você exclui com sucesso um artigo, na mesma solicitação (não faça outro, não é necessário), você também recupera (se houver) o próximo artigo após o último na página (por id, data de publicação ou outra) e retorne o Código HTML para anexar
Para deixar claro: se supõe que você esteja procurando artigos 16,17,18,19,20, você sabe que o último elemento na página é 20. Se você excluir o artigo 17, recupera o elemento 21, anexa na página e defina este valor 21 como último valor na página (e assim por diante)