Postar em AJAX com avisos

2 participantes

Ver o tópico anterior Ver o tópico seguinte Ir para baixo

Tópico resolvido Postar em AJAX com avisos

Mensagem por Sr.Guilherme54 20.10.20 17:43

Detalhes da questão


Endereço do fórum: http://dmfhb.forumeiros.com
Versão do fórum: AwesomeBB

Descrição


Exemplo:





Postado com sucesso!

Algo deu errado! Verifique se tudo está preenchido.
Mensagem alterada com sucesso!
Sr.Guilherme54

Sr.Guilherme54
*

Membro desde : 25/09/2020
Mensagens : 46
Pontos : 75

https://dtehb.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por tikky 20.10.20 18:15

Olá @Sr.Guilherme54,

O senhor pode ser mais claro do que deseja, por favor, a sua descrição é muito vaga!


Aguardo uma resposta sua,
pedxz.
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7820
Pontos : 9063

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por Sr.Guilherme54 20.10.20 18:26

Tip quando postamos aqui no forum dos foruns aperece uma mensagem logo acima dizendo para aguardar, depois aparece postado com sucesso. Quero fazer isso em meu forúm.
Sr.Guilherme54

Sr.Guilherme54
*

Membro desde : 25/09/2020
Mensagens : 46
Pontos : 75

https://dtehb.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por tikky 20.10.20 18:49

Crie uma nova página JavaScript com investimento nos tópicos com o seguinte código:
Código:
(function ($) {
  'use strict';
 
  var ajaxPostingConfig = {
    'minForPost': 15,
    'maxForPost': 15000
  };
 
  var ajaxPostingStyles = [
    '.ajax-alert {',
    '  width: 70%;',
    '  text-align: center;',
    '  margin: 20px auto;',
    '  color: #555;',
    '  background-color: transparent;',
    '  border: solid 1px #ddd;',
    '  border-bottom-width: 2px;',
    '  border-radius: 3px;',
    '  padding: 12px;',
    '  font-weight: 600;',
    '}',
    '',
    '.ajax-alert.ajax-alert-sucess {',
    '  border-color: #71be47!important;',
    '  color: #71be47!important;',
    '  box-shadow: inset 0 0 80px rgba(113, 190, 71, 0.3);',
    '}',
    '',
    '.ajax-alert.ajax-alert-danger {',
    '  color: #e6594c!important;',
    '  border-color: #e6594c!important;',
    '  box-shadow: inset 0 0 0 80px rgba(226, 99, 88, 0.15);',
    '}',
  ].join('\n');
 
  $(function () {
 
    var $postingResult = $([
      '<div class="posting-results">',
      '</div>',
    ].join('\n'))
      .insertBefore('.quick-reply')
    ;
 
    $('<style>', {
      type: 'text/css',
      text: ajaxPostingStyles
    }).appendTo('head');
 
    $('form#quick_reply')
      .on('submit', function (event) {
 
        if ($('textarea').val().length < ajaxPostingConfig.minForPost) {
          $postingResult
            .html([
              '<div class="ajax-alert ajax-alert-danger">',
              '  <div class="fa fa-exclamation-circle"></div>',
              '  <span>Para postar, sua mensagem deve ter no mínimo ' + ajaxPostingConfig.minForPost + ' caracteres.</span>',
              '</div>',
            ].join('\n'))
          ;
          return false;
        }
 
        if ($('textarea').val().length > ajaxPostingConfig.maxForPost) {
          $postingResult
            .html([
              '<div class="ajax-alert ajax-alert-danger">',
              '  <div class="fa fa-exclamation-circle"></div>',
              '  <span>Sua mensagem possui mais que o limite de caracteres (' + ajaxPostingConfig.maxForPost + ') para a postagem.</span>',
              '</div>',
            ].join('\n'))
          ;
          return false;
        }
 
        $.ajax({
 
          type: 'POST',
          url: '/post',
 
          data: {
            t: location.pathname.replace(/^\/t(\d+)-.*/gi, '$1'),
            mode: 'reply',
            tid: $('[name="tid"]').val(),
            post: 1,
            message: $('textarea').val(),
          },
 
          beforeSendo: function(context) {
            $postingResult
              .html([
              '<div class="ajax-alert ajax-alert-loading">',
                '  <div class="fa fa-circle-o-notch fa-spin"></div>',
                '  <span>Carregando...</span>',
                '</div>',
              ].join('\n'))
            ;
          },
 
          success: function(context) {
 
            var $link = $('a[href*="/viewtopic"]');
 
            $.get($link.attr('href'), function(context) {
              var $post = $('.post-wrap:last', context);
              $post
                .hide()
                  .insertAfter('.post-wrap:last')
                    .slideDown('fast', function() {
                      $('html, body').animate({
                          scrollTop: $('.post-wrap:last').offset().top
                      }, 500);
              });
            });
 
            // Adicionar alerta:
            $postingResult
              .html([
              '<div class="ajax-alert ajax-alert-sucess">',
                '  <div class="fa fa-check"></div>',
                '  <span>Mensagem postada com sucesso!</span>',
                '</div>',
              ].join('\n'))
            ;
 
            // Remover conteúdo do SCEditor:
            $('textarea').val('');
 
            console.info('[Postar em Ajax] {SUCESSO} ID do tópico onde fora postado o novo tópico: ' + location.pathname.replace(/^\/t(\d+)-.*/gi, '$1'));
 
          },
 
          fail: function(context) {
            $postingResult
              .html([
              '<div class="ajax-alert ajax-alert-danger">',
                '  <div class="fa fa-exclamation-circle"></div>',
                '  <span>Ocorreu um erro ao tentar postar sua mensagem. Tente esperar 10 segundos.</span>',
                '  <br />',
                '  <span>Caso o problema persista, acesse o Fórum dos Fóruns, e solicite ajuda.</span>',
                '</div>',
              ].join('\n'))
            ;
          },
        });
 
        event.preventDefault();
 
      })
    ;
  });
}(jQuery));
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7820
Pontos : 9063

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por Sr.Guilherme54 23.10.20 14:40

Quando coloco pra postar, aparece que postou, depois quando dou f5, some
Sr.Guilherme54

Sr.Guilherme54
*

Membro desde : 25/09/2020
Mensagens : 46
Pontos : 75

https://dtehb.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por tikky 23.10.20 14:48

Sr.Guilherme54 escreveu:Quando coloco pra postar, aparece que postou, depois quando dou f5, some
Entre no Painel de controle > Geral > Fórum > Segurança na opção "Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas" marque como "Não"!
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7820
Pontos : 9063

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por Sr.Guilherme54 26.10.20 16:42

Pd fechar
Sr.Guilherme54

Sr.Guilherme54
*

Membro desde : 25/09/2020
Mensagens : 46
Pontos : 75

https://dtehb.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Postar em AJAX com avisos

Mensagem por tikky 26.10.20 16:52

Tópico resolvido


Movido para "Questões resolvidas".
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7820
Pontos : 9063

Ir para o topo Ir para baixo

Ver o tópico anterior Ver o tópico seguinte Ir para o topo

- Tópicos semelhantes

Permissões neste sub-fórum
Não podes responder a tópicos