Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nikolas23

Qualé a lógica do sistema ?

Recommended Posts

Tava quebrando cabeça pra fazer uma requisição em ajax, toda vez que enviava por POST um formulário ele não me retornava. Ele sempre atualizava a pagina.

$("#btn_atualizar").click(function () {


                var adiciona = $("#adiciona").val();
                var retira = $("#retira").val();
                var produto_id = $("#produto_id").val();
                var usuario_id = $("#usuario_id").val();
                var qtd_atual = $("#qtd_atual").val();
                var tecnico = $("#tecnico").val();


                $.ajax({
                    url: 'teste_resultado.php',
                    type: 'post',
                    data: {'adiciona': adiciona,
                        'retira': retira,
                        'produto': produto_id,
                        'usuario': usuario_id,
                        'qtd_atual': qtd_atual,
                        'tecnico': tecnico
                    },
                    success: function (data) {
                        $('.form_estoque').html(data);
                    },
                    beforeSend: function () {
                        $('.loader').css({display: "block"});
                    },
                    complete: function () {
                        $('.loader').css({display: "none"});
                        $(".btn_atualizar").css({display: "block"});
                    }
                });


                window.location = "http://localhost/estoque/form_estoque.php#conteudo";
        });

Depois de um tempo descobrir que o erro estava acontecendo, porque era num <button></button> Que eu estava clicando, e se eu fizer um .click em qualquer <div> qualquer <ul> qualquer <h1>, ele retornar o resultado.

 

Que raios o <button> tem contra o Ajax ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use o evento click.

 

use o evento onsubmit do form, e cancele o envio padrão do html com um preventDefault.

 

exemplo:

http://wbruno.com.br/ajax/enviar-formulario-para-php-sem-refresh-jquery-ajax/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adicionando o comentário do Will,

 

 

Coloque o window.location dentro do success do ajax, assim só vai executar o redirect quando o ajax responder a chamada.

 window.location = "http://localhost/estoque/form_estoque.php#conteudo";

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.