Postar sem atualizar a página

2 participantes

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

Tópico resolvido Postar sem atualizar a página

Mensagem por RPGU 21.01.19 12:32

Detalhes da questão


Endereço do fórum: http://rpgteste.forumeiros.com/
Versão do fórum: PunBB

Descrição


hoje fui ver a pre visualização e ocorreu um erro ela enviou a mensagem em vez de pré visualizar.

Código:
/ *
* Código: Postar mensagem sem refresh
* Versão: 1.0
* Autor: Daemon
* Data: 17/09/2016
*/
$(document).on("ready", function() {
 
$("body").append(
'<style>' +
'.alert-success, .alert-error {' +
'    -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    background: url(https://imgur.com/J3aqwYE.png) repeat-x 0 0;' +
'    box-shadow: rgba(0,0,0,0.1) 0 1px 3px;' +
'    display: block;' +
'    font-size: 12px;' +
'    line-height: 1.6;' +
'    padding: 10px;' +
'    text-shadow: 0 1px 0 rgba(255,255,255,0.5);' +
'}' +
'.alert-success {' +
'    background-color: #cde3a4;' +
'    border: 1px solid #a8c471;' +
'    color: #436500;' +
'}' +
'.alert-error {' +
'    background-color: #ffbdbd;' +
'    border: 1px solid #d8aba7;' +
'    color: #92463f;' +
'}' +
'</style>'
);
 
var hrefResposta = $("a[href^='/post?t=']").attr("href");
var form = $("#quick_reply");
 
$("<div id='resultados_ajax'></div>").prependTo(form);
 
$("#quick_reply").submit(function(form) {
 
  var resAjax = $("#resultados_ajax"); // Elemento resultados_ajax
  var textEditorVal = $("textarea").sceditor("instance").val(); // Valor do editor
  var min = 10; // Mínimo de caracteres para o post
  var max = 15000; // Máximo de caracteres para o post (Não ultrapasse o valor limite estipulado pela forumeiros)
 
  if(textEditorVal.length < min) {
    resAjax.html("Digite pelo menos " + min + " caracteres para enviar o post").attr("class","alert-error");
    return false;
  }
  if(textEditorVal.length > max) {
    resAjax.html("Seu post ultrapassou o limite de " + max + " caracteres").attr("class","alert-error");
    return false;
  }
 
  $("input[type='submit']").attr("disabled", true);
  var parametros = $(form).serialize();
  $.ajax({
      type: "POST",
      url: hrefResposta,
      data: parametros + "&message=" + textEditorVal + "&post=1",
      beforeSend: function(objeto){
            resAjax.html("Carregando...").attr("class", false);
      },
      success: function(dados){
          var href = $("a[href^='/viewtopic']", dados).attr("href");
              $.get(href, function(e) {
                  $(".post:last", e).hide().insertAfter(".post:last").slideDown("fast", function() {
                      $("html, body").animate({
                          scrollTop: $(".post:last").offset().top
                      }, 500);
                  });
              });
              resAjax.html("Postado com sucesso!").attr("class","alert-success");
              $("input[type='submit']").attr("disabled", false);
              $("textarea").sceditor("instance").val("");
      }
  });
  return false;
});
 
});
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por Convidado 22.01.19 13:54

Olá,
Não se importa de me passar uma conta teste?
Fico no aguardo.
Anonymous

Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 23.01.19 0:44

passei pelo PV
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por Convidado 23.01.19 15:19

Olá novamente,

Veja se este código resulta:
Código:
        /* globals jQuery*/
       
        /**
        * Código: Postar mensagem sem refresh
        * Versão: 1.0
        * Autor: Daemon
        * Data: 17/09/2016
        */
       
        (function($) {
          'use strict';
       
          var bg = function() {
            $('div.postbody').each(function() {
              var node;
              var $post = $('.post-entry', this);
              var $content = $('.content', this);
       
              if ($post.length) {
                node = $post[0];
              } else if ($content.length) {
                node = $content[0];
              }
       
              while (node.nodeType !== 3 && node.hasChildNodes()) {
                node = node.childNodes[0];
              }
       
              if (node.nodeType !== 3) {
                return;
              }
       
              if (node.nodeValue.substr(0, 8) !== '[postbg=') {
                return;
              }
       
              var matches = node.nodeValue.match(/^\[postbg=([^\]]*)\]/);
       
              if (!matches) return;
       
              $(this)
                .closest('div.post-container, div.post, td.row1, td.row2,div.postmain')
                .addClass('postbg')
                .css('background-image', 'url(' + matches[1] + ')');
       
              node.nodeValue = node.nodeValue.replace(/^\[postbg=[^\[]*\]\n?/, '');
       
              if (
                !node.nodeValue
                && node.nextSibling
                && node.nextSibling.nodeType === 1
                && node.nextSibling.tagName === 'BR'
              ) {
                $(node.nextSibling).remove();
              }
            });
          };
       
          $(function() {
            $('body').append([
              '<style>' +
              '.alert-success, .alert-error {',
              '    -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;',
              '    -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 3px;',
              '    background: url(http://imgur.com/J3aqwYE.png) repeat-x 0 0;',
              '    box-shadow: rgba(0,0,0,0.1) 0 1px 3px;',
              '    display: block;',
              '    font-size: 12px;',
              '    line-height: 1.6;',
              '    padding: 10px;',
              '    text-shadow: 0 1px 0 rgba(255,255,255,0.5);',
              '}',
              '.alert-success {',
              '    background-color: #cde3a4;',
              '    border: 1px solid #a8c471;',
              '    color: #436500;',
              '}',
              '.alert-error {',
              '    background-color: #ffbdbd;',
              '    border: 1px solid #d8aba7;',
              '    color: #92463f;',
              '}',
              '</style>',
            ].join('\n'));
       
            var hrefResposta = $('a[href^="/post?t="]').attr('href');
            var $form = $('#quick_reply');
       
            $form.prepend('<div id="resultados_ajax"></div>');
       
            $form.on('submit', function(event) {
              event.preventDefault();
       
              var resAjax = $('#resultados_ajax'); // Elemento resultados_ajax
              var textEditorVal = $('textarea').sceditor('instance').val(); // Valor do editor
              var min = 10; // Mínimo de caracteres para o post
              var max = 15000; // Máximo de caracteres para o post (Não ultrapasse o valor limite estipulado pela forumeiros)
       
              if (textEditorVal.length < min) {
                resAjax
                  .html('Digite pelo menos ' + min + ' caracteres para enviar o post')
                  .attr('class', 'alert-error');
       
                return;
              }
       
              if (textEditorVal.length > max) {
                resAjax
                  .html('Seu post ultrapassou o limite de ' + max + ' caracteres')
                  .attr('class', 'alert-error');
       
                return;
              }
       
              /** BEGIN Fix background image */
       
              var image = $('#quick_reply .sceditor-container')
                .css('background-image')
                .match(/url\(('|")?([^'"]+)('|")?\)/i);
       
              if (image && image.length === 4) {
                textEditorVal = '[postbg=' + image[2] + ']' + textEditorVal;
              }
       
              /** END Fix background image */
       
              $('input[type="submit"]').attr('disabled', true);
       
              var parametros = $form.serialize();
       
              $.ajax({
                type: 'POST',
                url: hrefResposta,
                data: parametros + '&message=' + textEditorVal + '&post=1',
                beforeSend: function(objeto) {
                  resAjax.html('Carregando...').attr('class', false);
                },
                success: function(dados) {
                  var href = $('a[href^="/viewtopic"]', dados).attr('href');
       
                  $.get(href, function(e) {
                    $('.post:last', e).hide().insertAfter('.post:last').slideDown('fast', function() {
                      $('html, body').animate({
                        scrollTop: $('.post:last').offset().top,
                      }, 500);
                      bg();
                    });
                  });
       
                  resAjax.html('Postado com sucesso!').attr('class', 'alert-success');
       
                  $('input[type="submit"]').attr('disabled', false);
                  $('textarea').sceditor('instance').val('');
                },
              });
            });
          });
        }(jQuery));

Cordialmente,
Roger123
Anonymous

Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 24.01.19 23:19

Olá, infelizmente não resultou.
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Admineiro

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por tikky 25.01.19 8:08

Olá @RPGU,
Diga-me quais os scripts ativos do seu fórum? Poderá existir um conflito de códigos!
Tente desativar um a um, deixando sempre o script em cima ativo, para ver qual anda a fazer o conflito; após descobrir qual passe-me. Tenha sempre a noção que é muito importante respeitar o investimento das Páginas JavaScript para que elas não façam esse tipo de erro.
Leia este tópico: Questão Resolvida .


Aguardo uma resposta sua,
pedxz
tikky

tikky
Admineiro
Admineiro

Membro desde : 13/01/2017
Mensagens : 7806
Pontos : 9049

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 25.01.19 23:06

Não há nenhum script ativo, o investimento ta no tópico.
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por Convidado 26.01.19 11:53

Olá novamente,

Queira seguir todos os passos apresentados nesta questão resolvida:
Flecha ajudeiros Questão resolvida.

Cordialmente,
Roger123
Anonymous

Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 27.01.19 13:47

eu segui todos os passos e o erro ainda persisti, isso não poderia ser algum conflito com o topics_list_box ou o viewtopic_body?
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 27.01.19 17:55

A parte de pré-visualizar está funcionando, entretanto bugou o botão de enviar, quando eu clico em enviar ele repete a mensagem e se eu postar 2 mensagem a segunda não parece apenas repete a primeira.

Código:
jQuery(window).load(function() {
    var Copyright = 'Copyright BestSkins ©️ 2013. All right reserved. Não remova os créditos do autor.';
    var daemon = $('a[href^="/post?t="]').first().attr('href');
    $('#quick_reply input[name="post"]').on('click', function(post) {
    post.preventDefault();
    var valor = $('#text_editor_textarea').sceditor('instance').val().replace(/\s/g,'').length;
    if(valor == 0) {
      alert("Seu post está vazio");
    } else if(20 > valor) {
      alert("Você precisa digitar pelo menos mais "+(20-valor)+" caracteres, por favor, não faça flood");
    } else if(15000 < valor) {
      alert("Seu post passou de 15000 caracteres, diminua-o");
    }
    else if(20 <= valor && valor <= 15000) {
        $.post(daemon, {
              'message': $('#text_editor_textarea').sceditor('instance').val(),
              'post': 'Enviar',
              'attach_sig': '1'
        }, function(e) {
          var href = $(e).find('a[href^="/viewtopic"]').attr('href');
          $.get(href, function(daemon) { 
          $(daemon).find('.post:last').hide().insertAfter('.post:last').slideDown('fast', function() {
                  $('html, body').animate({
                      scrollTop: $('.post:last').offset().top
                  }, 500);
          });
          });
          $('#text_editor_textarea').sceditor('instance').val('');
        });
    }
    });
});
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 29.01.19 23:09

upando......
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 02.02.19 14:07

upando....
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por Convidado 02.02.19 19:14

Já seguiu estes passos: Painel de Controle Seta Geral Seta Fórum Seta Segurança Seta Desautorizar formulários não oficiais de postarem no fórum e enviar mensagens privadas Seta Marque Não ?

Se não, faça-o e verifique se o erro presiste.

Cordialmente,
Roger123
Anonymous

Convidado
Convidado


Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por RPGU 02.02.19 21:07

Muito obrigado, solucionou.
RPGU

RPGU
***

Membro desde : 02/01/2019
Mensagens : 171
Pontos : 237

http://rpgteste.forumeiros.com/

Ir para o topo Ir para baixo

Tópico resolvido Re: Postar sem atualizar a página

Mensagem por Convidado 03.02.19 10:28

Tópico resolvido


Movido para "Questões resolvidas".
Anonymous

Convidado
Convidado


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