Ir para conteúdo

POWERED BY:

Arquivado

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

webruno

Guardar busca de Ajax em variavel

Recommended Posts

E aí galera!Tem como guardar o retorno de um AJAX numa variavel para ser usada mais tarde? Não estou conseguindo, a variavel esta retornando como indefinada. Ja estou a tempo fazendo testes pra tentar resolver, mas não consigo.Não sei se é assim, mas acho que após executar o que esta dentro do readyState == 4 o AJAX perde sua busca e volta pro readyState = 0, impossibilitando de usar as variaveis buscada. Ou seja eu teria que fazer o que quero somente durante o readyState == 4.O problema é que estou usando DOM pra criar campos de formulario dinamicamente após a busca feita pelo AJAX, então somente usando variaveis array pra guardar a busca e manipular os campos criados posteriomente.Não sei se deu pra entender, mas desde ja agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Saudações amigo..olha so, manda seu código para nós...de repente, poderemos ajuda-lo...criei um sistema totalmente em ajax..manda ae, de repente, podemos te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai Rodrigo... tipo assim mano

 

function Dados(valor){var parametro = valor; //valor de quantos campos vão ser adicionadoSuporteAjax(); //verifica se o browser tem suporte a ajax//se tiver suporte ajaxif(ajax){	ajax.open("POST", "form.php", true);	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");			 	ajax.onreadystatechange = function()	{	//após ser processado - chama função processXML que vai varrer os dados	if(ajax.readyState == 4 )	{	if(ajax.responseXML){		var dataArray = ajax.responseXML.getElementsByTagName("banco");		obanco = new Array(dataArray.length);		//percorre o arquivo XML paara extrair os dados		for(var i = 0; i < dataArray.length; i++)		{		var item = dataArray[i];		//contéudo dos campos no arquivo XML		var cod_banco = item.getElementsByTagName("cod_banco")[0].firstChild.nodeValue;		var nome_banco = item.getElementsByTagName("nome_banco")[0].firstChild.nodeValue;		var agencia_banco =  item.getElementsByTagName("agencia_banco")[0].firstChild.nodeValue;		//cria um novo option dinamicamente 		obanco[i] = document.createElement("option");		obanco[i].value = cod_banco;//atribui um valor		obanco[i].text  = nome_banco + " / " + agencia_banco;		}	 }	}	}	ajax.send();	}}

 

Desculpe a indentação... no fórum é complicado organizar...

 

No caso se eu tentar acessar o obanco[0] ou qualquer array do banco fora da função retorna como nulo(inexistente).

 

A solução que achei (mas que não está nesse script) foi chamar um função dentro do FOR passando como paramentro os dados achado, e nessa função guardo o array como variavel global pra acessar de qualquer local... mas acho que essa não é a melhor solução.

 

 

Se puder ajudar cara, agradeço muito.

 

Valeu, falou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

movi o topico pq eh ajax, mas quanto a sua pergunta, se voce quer deixar guardado pra mais tarde, eu acho melhor fazer uma requisicao sincrona, e nao assincrona, vo dar o exemplo:

 

function initAjax() {	var req;		try {		//tenta carregar o XMLHTTP nativo		req = new XMLHttpRequest();	} catch(e) {		try {			//tenta carregar o ActiveX XMLHTTP 2.0			req = new ActiveXObject("Msxml2.XMLHTTP");		} catch(ex) {			try {				//tenta carregar o ActiveX XMLHTTP				req = new ActiveXObject("Microsoft.XMLHTTP");			} catch(exc) {				req = null;			}		}	}		return req;}var a = initAjax();a.open("GET", "pagina.php", false); //repare no false como 3 argumentoa.send(null);var xml = a.responseXML; //pronto, dados guardados;)

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.