Jump to content
marcello.alvess

Várias requisições ajax na mesma pagina erro.

Recommended Posts

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

});   
	
});

Share this post


Link to post
Share on other sites

 

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.