Ir para conteúdo

Arquivado

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

André Maretti

Problemas com AJAX

Recommended Posts

Oi Galera...

 

Já vou começar me desculpando... pq acho q estou na sessão errada... mas é q postei ontem na sessão Ajax e ninguem respondeu... de ontem pra hj pesquisei pacas e não achei solução... Aí resolvi apelar e postar aqui mesmo!

 

Estou tentando aplicar Ajax ao meu sistema e encontrei algumas dificuldades... então separei um problema que estou tendo de uma forma mais resumida... é assim:

 

tenho esse código que gera um XML:

<?$conteudo = '<?xml version="1.0" encoding="ISO-8859-1"?>';$conteudo .= "\n";$conteudo .= "\n";	$conteudo .= "<tabela>";$conteudo .= "\n";			$conteudo .= "<cliente>";		$conteudo .= "\n";				$conteudo .= "<codigo>1</codigo>"."\n";		$conteudo .= "<nome>Andre</nome>"."\n";		$conteudo .= "\n";	$conteudo .= "</cliente>";$conteudo .= "\n";		$conteudo .= "</tabela>";$conteudo .= "\n";	echo($conteudo);?>

Quem quiser acessar...: http://www.micropinhal.com.br/ajax/gera_xml.php

 

Tenho esse outro script que deveria ler o XML gerado pelo arquivo acima:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title><script language="JavaScript"><!--function OpenAjax(){	var ajax;	try{		ajax = new XMLHttpRequest();	}catch(e){		try{			ajax = new ActiveXObject("Msxml2.XMLHTTP");		}catch(e){			try{ 				ajax = new ActiveXObject("Microsoft.XMLHTTP");			}catch(E){				alert("Este Browser não suporta AJAX");				ajax = false;			}		}	}	return ajax;	}function ler(){	var ajax = OpenAjax();	if (ajax){		txt_status.value = "Navegador com suporte a Ajax";			} else {		txt_status.value = "Navegador sem suporte a Ajax";				}	ajax.open("GET", "gera_xml.php", true);			ajax.onreadystatechange = function (){		if(ajax.readyState == 1){			txt_status.value = "processando...";		}		if(ajax.readyState == 4){			txt_status.value = "PROCESSADO";			if(ajax.responseXML){				txt_status.value = "XML Válido";				var dataArray = ajax.responseXML.getElementsByTagName("cliente");				if(dataArray.length > 0) {					txt_status.value = "Array Cheio";					var item = dataArray[0];					alert(item.getElementsByTagName("codigo")[0].firstChild.nodeValue);					alert(item.getElementsByTagName("nome")[0].firstChild.nodeValue);									} else {					txt_status.value = "Array Vazio";								}			} else {				txt_status.value = "XML Não Válido";			}		}		}	ajax.send(null);	}</script></head><body><label><input type="submit" name="Submit" value="Submit" onClick="ler()" /></label><input type="text" name="txt_status" class="status" /></body></html>

Quem quiser acessar: http://www.micropinhal.com.br/ajax/ler_xml.php

 

O PROBLEMA:

 

Quando eu clico a primeira vez no botão ele dá Array Vazio... como se o XML viesse vazio! Se eu clicar de novo aí ele dá array cheio...!

se eu fechar o navegador e abrir de novo e clicar no botão... novamete ele dá array vazio... clicando pela segunda vez dá array cheio.!

 

Não entendo pq na primeira vez q eu clico ele dá Array vazio?

 

Alguém pode me ajudar?!

 

Me desculpem mais uma vez por postar na sessão incorreta... e moderador se puder deixar meu tópico aqui um pouco será de grande ajuda....rsrsr... por que a sessão de ajax não tá muito movimentada ainda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kara soh uma dica ao inves de name="" use id="" se naum vai dar falha no firefox

 

Essa script "txt_status.value" funciona em IE mas outros navegadores naum reconhece

 

você pode fazer assim

 

document.form1.txt_status.value=<form action="?" onsubmit="return false;"><input type="text" name="txt_status" class="status" /></form>

ou assim

 

document.getElementById("txt_status").value=<input type="text" id="txt_status" class="status" />

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.