Fórum dos Fóruns

Fórum dos Fóruns Forumeiros

Welcome FdF Bem-vindo ao fórum de suporte Forumeiros  Muito feliz


Para aproveitar tudo o que o nosso fórum lhe oferece, agradecemos que se identifique, se já é nosso membro, ou que se junte à nossa comunidade, fazendo o seu registo.
Acesso rápido

Fóruns de suporte oficiais
Conectar-se

Esqueci minha senha

Últimos assuntos
» Sobre o portal
Ontem à(s) 11:03 pm por Cannabis._.

» Pintar ícones
Ontem à(s) 10:09 pm por Tiger

» Modificar cor de fundo e ícone
Ontem à(s) 10:07 pm por Tiger

» Avatar Gif
Ontem à(s) 10:06 pm por Tiger

» Gerir assinatura nos tópicos
Ontem à(s) 09:57 pm por Luiz~

» O que é o Favicon do fórum?
Ontem à(s) 09:56 pm por Luiz~

» Barra de Categorias
Ontem à(s) 09:15 pm por Tiger

Perdi minha senha!
Você precisa recuperar sua senha?
Clique aqui
Parceiros Forumeiros
Os membros mais ativos da semana
Luiz~
 
Kyo Panda
 
Shek
 
Sennior
 
Sovereign
 
Chrono Trigger
 
Harleen
 
Cannabis._.
 
Tiger
 
CAI0
 

Quem está conectado
257 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 257 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 3131 em 24/12/09, 01:05 pm

Mensagem rápida (AJAX) com bugs

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

Resolvido Mensagem rápida (AJAX) com bugs

Mensagem por Quizzy_Quizzy em 10/01/17, 02:16 am

Detalhes da questão


Endereço do fórum: brasilplayforever.com/forum
Versão do fórum: PhpBB3

Descrição


Olá meus amigos, estou muito grato de vocês estarem vendo esse meu post. O problema é o seguinte: usei o post rápido com AJAX no meu fórum, mas reparei que bugaram algumas mensagens. Comecei reparando quando há um espaço acima da caixa de mensagens de regras. Ao clicar em ENVIAR, aparecia o mesmo espaço de regras porém duplicado. Precisaria atualizar a página para que esta mensagem aparecesse.
Outro problema quanto a este código é que quando eu estou postando e alguém posta mais rápido que eu, a mensagem some. Exemplo: abri o tópico 12:00, fulano postou 12:01 e eu postei 12:02. A mensagem que eu pus não envia e não é salva em nenhum local, simplesmente some da interface apesar de aparecer que a mensagem foi enviada. Detalhe: ao invés de direcionar para a mensagem que eu deveria ter enviado, direciona ao mentor da nova mensagem (no caso, quem postou 12:01).

Ao clicar com o botão em "Enviar": http://i.imgur.com/2xqGkVK.png
Com a mensagem enviada (é preciso atualizar a página para que apareça): http://i.imgur.com/hu1CAxb.png

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(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>'
    );
 
    var hrefResposta = $("a[href^='/post?t=']").attr("href");
    var form = $("#quick_reply");
 
    $("<div id='resultados_ajax'></div>").prependTo(form);
 
    $('#quick_reply input[name="post"]').on('click', 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 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 = $("#quick_reply").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;
    });
 
});

Fonte do código: http://ajuda.forumeiros.com/t107420-tutorial-postar-em-ajax-com-avisos
avatar

Quizzy_Quizzy
Nível 2

Masculino
Inscrito dia : 04/05/2016
Mensagens : 12
Pontos Ativos : 18

http://www.brasilplayforever.com/forum

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Kyo Panda em 10/01/17, 08:58 am

Tente trocar por esse:

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(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>'
    );
 
    var hrefResposta = $("a[href^='/post?t=']").attr("href");
    var form = $("#quick_reply");
 
    $("<div id='resultados_ajax'></div>").prependTo(form);
 
    $('#quick_reply input[name="post"]').on('click', 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 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 = $("#quick_reply").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) {
                    $("input[type='submit']").attr("disabled", false);
                    if ($('div.h3:contains("Revisão do tópico")', e).length) {
                      resAjax.html("Uma nova mensagem foi adicionada no momento em que você escrevia a sua mensagem. Você pode consultar as últimas mensagens postadas abaixo e decidir por modificá-la ou salvá-la.").attr("class", "alert-error");
                      return;
                    }
                    $(".post[id^='p']:last", e).hide().insertAfter(".post[id^='p']:last").slideDown("fast", function () {
                        $("html, body").animate({
                            scrollTop: $(".post[id^='p']:last").offset().top
                        }, 500);
                    });
                    resAjax.html("Postado com sucesso!").attr("class", "alert-success");
                    $("textarea").sceditor("instance").val("");
                });
            }
        });
        return false;
    });
 
});


Bem vindo ao Fórum dos Fóruns. Antes de começar a postar, por favor, queira visitar alguns links importantes:
Regulamento e informações afins:
Seta Condições gerais de uso & equipe voluntária de suporte.
Seta Lista de perguntas e respostas e Tutoriais e astúcias.
Seta Sistema de busca do fórum.
Fóruns interessantes:
Seta Ajuda e Suporte.
Seta Serviços Extras.
Seta Publicidade & SEO.
Seta Sugestões e Melhoras.
Desenvolvedores:
Seta Addons ou Plugins.
Seta Desenvolvimento Beta.
avatar

Kyo Panda
Moderadeiro
Moderadeiro

Masculino
Inscrito dia : 08/01/2012
Mensagens : 3508
Pontos Ativos : 4761

http://ajuda.forumeiros.com

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Quizzy_Quizzy em 10/01/17, 04:57 pm

Olá Kyo, obrigado por ter respondido.
Desbugou o problema em que não aparecia a mensagem e sim repetia as regras, porém o bug de alguém postar mais rápido continua.

Novamente, obrigado.
avatar

Quizzy_Quizzy
Nível 2

Masculino
Inscrito dia : 04/05/2016
Mensagens : 12
Pontos Ativos : 18

http://www.brasilplayforever.com/forum

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Kyo Panda em 10/01/17, 05:45 pm

Mais uma tentativa. Troque por esse:

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(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>'
  );

  var hrefResposta = $("a[href^='/post?t=']").attr("href");
  var form = $("#quick_reply");

  $("<div id='resultados_ajax'></div>").prependTo(form);

  $('#quick_reply input[name="post"]').on('click', 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 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 = $("#quick_reply").serialize();
    $.ajax({
      type: "POST",
      url: hrefResposta,
      data: parametros + "&message=" + textEditorVal + "&post=1",
      beforeSend: function (objeto) {
        resAjax.html("Carregando...").attr("class", false);
      },
      success: function (dados) {
        $("input[type='submit']").attr("disabled", false);
        if ($('div.h3:contains("Revisão do tópico")', dados).length) {
          resAjax.html("Uma nova mensagem foi adicionada no momento em que você escrevia a sua mensagem. Você pode consultar as últimas mensagens postadas abaixo e decidir por modificá-la ou salvá-la.").attr("class", "alert-error");
          return;
        }
        var href = $("a[href^='/viewtopic']", dados).attr("href");
        $.get(href, function (e) {
          $(".post[id^='p']:last", e).hide().insertAfter(".post[id^='p']:last").slideDown("fast", function () {
            $("html, body").animate({
              scrollTop: $(".post[id^='p']:last").offset().top
            }, 500);
          });
          resAjax.html("Postado com sucesso!").attr("class", "alert-success");
          $("textarea").sceditor("instance").val("");
        });
      }
    });
    return false;
  });

});


Bem vindo ao Fórum dos Fóruns. Antes de começar a postar, por favor, queira visitar alguns links importantes:
Regulamento e informações afins:
Seta Condições gerais de uso & equipe voluntária de suporte.
Seta Lista de perguntas e respostas e Tutoriais e astúcias.
Seta Sistema de busca do fórum.
Fóruns interessantes:
Seta Ajuda e Suporte.
Seta Serviços Extras.
Seta Publicidade & SEO.
Seta Sugestões e Melhoras.
Desenvolvedores:
Seta Addons ou Plugins.
Seta Desenvolvimento Beta.
avatar

Kyo Panda
Moderadeiro
Moderadeiro

Masculino
Inscrito dia : 08/01/2012
Mensagens : 3508
Pontos Ativos : 4761

http://ajuda.forumeiros.com

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Quizzy_Quizzy em 10/01/17, 07:43 pm

Com este código, testei o postagem rápida de outra pessoa, não funcionou. Notei que o bug das regras duplicadas voltaram:

avatar

Quizzy_Quizzy
Nível 2

Masculino
Inscrito dia : 04/05/2016
Mensagens : 12
Pontos Ativos : 18

http://www.brasilplayforever.com/forum

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Kyo Panda em 11/01/17, 08:45 am

Eu acessei o seu fórum e não encontrei o script aplicado. Em adição, realizei testes com o script e pude confirmar que está funcional:

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(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>'
  );
 
  var hrefResposta = $("a[href^='/post?t=']").attr("href");
  var form = $("#quick_reply");
 
  $("<div id='resultados_ajax'></div>").prependTo(form);
 
  $('#quick_reply input[name="post"]').on('click', 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 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 = $("#quick_reply").serialize();
    $.ajax({
      type: "POST",
      url: hrefResposta,
      data: parametros + "&message=" + textEditorVal + "&post=1",
      beforeSend: function (objeto) {
        resAjax.html("Carregando...").attr("class", false);
      },
      success: function (dados) {
        $("input[type='submit']").attr("disabled", false);
        if ($('div.h3:contains("Revisão do tópico")', dados).length) {
          resAjax.html("Uma nova mensagem foi adicionada no momento em que você escrevia a sua mensagem. Atualize a página para ver as alterações.").attr("class", "alert-error");
          return;
        }
        var href = $("a[href^='/viewtopic']", dados).attr("href");
        $.get(href, function (e) {
          $(".post[id^='p']:last", e).hide().insertAfter(".post[id^='p']:last").slideDown("fast", function () {
            $("html, body").animate({
              scrollTop: $(".post[id^='p']:last").offset().top
            }, 500);
          });
          resAjax.html("Postado com sucesso!").attr("class", "alert-success");
          $("textarea").sceditor("instance").val("");
        });
      }
    });
    return false;
  });
});

Preciso que o deixe aplicado e nos avise aqui para que possamos fazer os devidos testes.

o/


Bem vindo ao Fórum dos Fóruns. Antes de começar a postar, por favor, queira visitar alguns links importantes:
Regulamento e informações afins:
Seta Condições gerais de uso & equipe voluntária de suporte.
Seta Lista de perguntas e respostas e Tutoriais e astúcias.
Seta Sistema de busca do fórum.
Fóruns interessantes:
Seta Ajuda e Suporte.
Seta Serviços Extras.
Seta Publicidade & SEO.
Seta Sugestões e Melhoras.
Desenvolvedores:
Seta Addons ou Plugins.
Seta Desenvolvimento Beta.
avatar

Kyo Panda
Moderadeiro
Moderadeiro

Masculino
Inscrito dia : 08/01/2012
Mensagens : 3508
Pontos Ativos : 4761

http://ajuda.forumeiros.com

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Quizzy_Quizzy em 12/01/17, 08:02 pm

O seu avatar me dá muito, muuuuuuito medo (sorry) então sabe o quão difícil pra mim é dizer que eu serei imensamente grato pela ajuda. Espero que possa prosperar dentro da Staff. Muito obrigado  Party
avatar

Quizzy_Quizzy
Nível 2

Masculino
Inscrito dia : 04/05/2016
Mensagens : 12
Pontos Ativos : 18

http://www.brasilplayforever.com/forum

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Kyo Panda em 12/01/17, 08:31 pm

Existe algum tópico no seu fórum para que possamos disparar algumas mensagens de teste?

Spoiler:
Deep♂Dark♂Fantasies
avatar

Kyo Panda
Moderadeiro
Moderadeiro

Masculino
Inscrito dia : 08/01/2012
Mensagens : 3508
Pontos Ativos : 4761

http://ajuda.forumeiros.com

Resolvido Re: Mensagem rápida (AJAX) com bugs

Mensagem por Kyo Panda em 17/01/17, 09:59 pm

Questão abandonada pelo autor, mas considerada resolvida por ter solução para o problema.
Tópico marcado como Resolvido e movido para Questões resolvidas.


Bem vindo ao Fórum dos Fóruns. Antes de começar a postar, por favor, queira visitar alguns links importantes:
Regulamento e informações afins:
Seta Condições gerais de uso & equipe voluntária de suporte.
Seta Lista de perguntas e respostas e Tutoriais e astúcias.
Seta Sistema de busca do fórum.
Fóruns interessantes:
Seta Ajuda e Suporte.
Seta Serviços Extras.
Seta Publicidade & SEO.
Seta Sugestões e Melhoras.
Desenvolvedores:
Seta Addons ou Plugins.
Seta Desenvolvimento Beta.
avatar

Kyo Panda
Moderadeiro
Moderadeiro

Masculino
Inscrito dia : 08/01/2012
Mensagens : 3508
Pontos Ativos : 4761

http://ajuda.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum