Postar em AJAX com avisos
2 participantes
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1 • Compartilhe
Postar em AJAX com avisos
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! |
Re: Postar em AJAX com avisos
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.
O senhor pode ser mais claro do que deseja, por favor, a sua descrição é muito vaga!
Aguardo uma resposta sua,
pedxz.
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7966
Pontos : 9225
Re: Postar em AJAX com avisos
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.
Re: Postar em AJAX com avisos
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- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7966
Pontos : 9225
Re: Postar em AJAX com avisos
Quando coloco pra postar, aparece que postou, depois quando dou f5, some
Re: Postar em AJAX com avisos
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"!Sr.Guilherme54 escreveu:Quando coloco pra postar, aparece que postou, depois quando dou f5, some
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7966
Pontos : 9225
Re: Postar em AJAX com avisos
Pd fechar
Re: Postar em AJAX com avisos
Tópico resolvidoMovido para "Questões resolvidas". |
tikky- Admineiro
- Membro desde : 13/01/2017
Mensagens : 7966
Pontos : 9225
Tópicos semelhantes
» Postar em ajax com avisos
» Postar em ajax com avisos
» Postar em ajax com avisos
» Postar em ajax com avisos
» Postar mensagem com ajax
» Postar em ajax com avisos
» Postar em ajax com avisos
» Postar em ajax com avisos
» Postar mensagem com ajax
Fórum dos Fóruns :: Ajuda e atendimento ao utilizador :: Questões sobre códigos :: Questões resolvidas sobre códigos Javascript e jQuery
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos