Ir para conteúdo

POWERED BY:

Arquivado

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

stview

Como pegar o resultado de uma função ajax

Recommended Posts

Eu tenho uma validação de formulário que funciona beleza.Como esse form é um cadastro de área restrita, preciso verificar se o login escolhi do já existe, antes eu usava um iframe escondido que chamava um php e etc e tal.Agora estou querendo usar esse tal de ajax rs rs.Ja esta tudo pronto, o js de validação, chamando o ajax, o ajax tb esta certo.Meu problema, como que eu faço pra aguardar o ajax rodar e baseado no resultado dessa função continuar com a função de validação?Segue abaixo o trecho js que chama o ajax e o ajax inteiro:JS:

...if(makeRequest(URL_PESQUISA, NID)) {	DOC.submit()} else {	alert("ERRO");	return false;};

AJAX:

function makeRequest(URL, PARAM) {	AJAX = false;	if (window.XMLHttpRequest) { // Mozilla, Safari,...		AJAX = new XMLHttpRequest();		if (AJAX.overrideMimeType) {			AJAX.overrideMimeType('text/xml');		}	} else if (window.ActiveXObject) { // IE		try {			AJAX = new ActiveXObject("Msxml2.XMLHTTP");		} catch (e) {			try {				AJAX = new ActiveXObject("Microsoft.XMLHTTP");			} catch (e) {}		}	}	if (!AJAX) {		alert('ERRO :(Seu navegador não suporta a aplicação usada neste site');		return false;	}		AJAX.onreadystatechange = function() {		if (AJAX.readyState == 4) {			if (AJAX.status == 200) {				return AJAX.responseText;			} else {				return false;			}		}	}		AJAX.open('POST', URL, true);	AJAX.send(PARAM);};

Dentro do ajax se eu dou um alert no responseText, eu vejo que a resposta veio a esperada, mas nao consigo ter essa resposta dentro da primeira função js que chama o ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer que o script não continue até receber uma respostar do ajax, você tem que usá-lo de forma síncrona.no seu código fica assim: AJAX.open('POST', URL, false);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi direito.No script ajax tem essa execução, claro.No caso eu ja teria que ter o objeto ajax preparado, e dentro do js usar o OBJ.open ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim o método open pode ser setado como síncrono ou assíncrono, se você estiver usando no modo síncrono a função que chamou o ajax vai ficar "congelada" até receber uma resposta.

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.