Ir para conteúdo
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');
		
	}
  
});

});   
	
});

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

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