Jump to content
zecapistolas

Ajax + PHP (MySQL)

Recommended Posts

zecapistolas

Viva,

Estou aqui com um problema: tenho uma combobox à qual estou a apanhar o evento change em JavaScript:

$(document).ready(function()
{
$("#ID_Competicao").change(function()
{
	var str = $(this).serialize();

	$.ajax({
		type: "POST",
		url: "functionsJogo.php",
		data: str,
		dataType: 'json',
		success: function(res)
		{
			$("#mensagens").ajaxComplete(function(event, request, settings)
			{
				alert(res.msg);
			});
		}
	});
	return false;
});
});

O valor seleccionado na combobox é enviado para o ficheiro functionsJogo.php através de Ajax e com POST. No ficheiro functionsJogo.php retorno uma mensagem dummy sem importância (agora apenas quero testar a comunicação entre o Ajax e o PHP).

A primeira vez que vou seleccionar uma entrada qualquer da combobox correu tudo bem, o evento apanha essa entrada e envia o valor para o PHP ao que este devolve uma mensagem e é mostrada no alert.

O problema aparece quando vou seleccionar outra (qualquer) entrada da combobox. A segunda vez que vou seleccionar uma entrada ele imprimi 2 vezes o alert, a terceira vez que selecciono outra entrada o alert aparece 3 vez e assim sucessivamente.

Porque é que o evento "guarda" a informação de todas as vezes que selecciono uma entrada na combobox?  🤔  🤔

cumps  :D

Share this post


Link to post
Share on other sites
useware

A função $.ajaxComplete regista um event listener que é executado sempre que uma (qualquer) chamada ajax termina.

O teu código tá a adicionar vários event listeners e é por isso que que te aparece o alert varias vezes.

Experimenta assim:

$(document).ready(function()
{
$("#ID_Competicao").change(function()
{
	var str = $(this).serialize();

	$.ajax({
		type: "POST",
		url: "functionsJogo.php",
		data: str,
		dataType: 'json',
		success: function(res)
		{
			alert(res.msg);
		}
	});
	return false;
});
});

Share this post


Link to post
Share on other sites
zecapistolas

A função $.ajaxComplete regista um event listener que é executado sempre que uma (qualquer) chamada ajax termina.

O teu código tá a adicionar vários event listeners e é por isso que que te aparece o alert varias vezes.

É isso mesmo, obrigado pela ajuda.  :D

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

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.