marcello.alvess 0 Denunciar post Postado Junho 29, 2016 Bom dia, Estou com um probleminha que não estou conseguindo resolver, estou fazendo um projeto com PHP e AJAX, em uma das paginas do projeto, tenho 3 requisições ajax, uma dessas requisições faz o envio de um form via PHP para o banco mysql, ate ai funciona tudo perfeitamente, o problema é que quando clico no button para enviar esses dados, a requisição de envio executa o mesmo numero de vezes de requisições da que tem na pagina e no banco obviamente grava essas repetições. como resolvo isso. abraço segue exemplo $(document).ajaxComplete(function(){ $(".button").click(function(){ var dados = $("#form").serialize(); $.ajax({ url: 'gravar.php', data: dados, type: 'POST', dataType: 'json', cache: false, success: function(retorno){ alert('ok'); } }); }); }); Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 29, 2016 Requisição de envio executa o mesmo numero de vezes de requisições da que tem na pagina e no banco obviamente grava essas repetições. Não entendi isso aqui... Outra duvida, por que utiliza esse evento? $(document).ajaxComplete(function(){ Tenta assim: $(document).ready(function() { $( ".button" ).bind( "click", function() { console.log('data', data); $.ajax({ url: 'gravar.php' ,data: $('#form *').serialize() ,type:'POST' ,cache: false ,dataType: 'json' ,success: function(json){ console.log(json) return true; } ,error: function(json){ console.log(json); } }); }); }); Só precisa se atentar se o id='form' do html não está duplicado. No seu code não tinha o $('#form *'), "espaço + *" isso garante que o serialize pegue só fields com name dentro daquele seletor. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
marcello.alvess 0 Denunciar post Postado Junho 29, 2016 Então Gabriel, uso o ajaxComplete pois o button vai aparecer depois de um retorno json do banco e somente será clicando depois que a execução do ajax terminar e o id form so existe um na pagina. tentei dessa forma mais deu o mesmo problema. abraço Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 29, 2016 Acho q entendi melhor o seu cenário.Da uma lida broo http://www.weblizards.com.br/javascript/jquery-metodo-on/ Compartilhar este post Link para o post Compartilhar em outros sites
marcello.alvess 0 Denunciar post Postado Junho 29, 2016 Esse eu ja testei também, continua na mesma. Compartilhar este post Link para o post Compartilhar em outros sites
marcello.alvess 0 Denunciar post Postado Junho 30, 2016 Opa Gabriel agora funcionou, sempre usei o ajaxComplete() mais dessa vez ele me falhou rrss. mudei o ajaxComplete() para ready() e usei o on() no click ai deu boa. abraço Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Junho 30, 2016 Fico feliz que deu certo. Já apanhei muito também com esse lance de manipular o DOM após o mesmo ser carregado. Compartilhar este post Link para o post Compartilhar em outros sites
Luciano Marques 0 Denunciar post Postado Outubro 23, 2019 tava tem esse problema aqui em 2019. mas resolvido graças a dica do @gabrieldarezzo Compartilhar este post Link para o post Compartilhar em outros sites