Ir para conteúdo

POWERED BY:

Arquivado

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

Henrique Fleury

[Resolvido] Qual o erro do estado puxa cidade? AJAX

Recommended Posts

E ai galera beleza?

 

E o seguinte eu peguei um codigo aqui no imasters aonde eu coloco o estado ele da um refresh para aparecer as cidades relacionadas com o estado, ele da esse refresh mas nao esta aparecendo as cidades pelo o q vejo nao e problema com o codigo do mysql e eu nao sei nada de ajax entao sera que o pessoal poderia ler o codigo e ve se tem algo errado?

 

<?
//CONECTA AO MYSQL			  
require_once("conexao.php");	

//PEGA OS ESTADOS 
$sql = "		  
		SELECT a.ID_ESTADO, a.DSC_ESTADO, a.SIGL_ESTADO 
		FROM estados a		  
		ORDER BY a.DSC_ESTADO"; 

//EXECUTA A QUERY			   
$sql = mysql_query($sql);	   

$row = mysql_num_rows($sql); 
?>

<script language="JavaScript">

   function Dados(valor) {
	  //verifica se o browser tem suporte a ajax
	  try {
		 ajax = new ActiveXObject("Microsoft.XMLHTTP");
	  } 
	  catch(e) {
		 try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		 }
		 catch(ex) {
			try {
			   ajax = new XMLHttpRequest();
			}
			catch(exc) {
			   alert("Esse browser não tem recursos para uso do Ajax");
			   ajax = null;
			}
		 }
	  }
	  //se tiver suporte ajax
	  if(ajax) {
		 //deixa apenas o elemento 1 no option, os outros são excluídos
		 document.forms[0].listCidades.options.length = 1;
		 
		 idOpcao  = document.getElementById("opcoes");
		 
		 ajax.open("POST", "cidades.php", true);
		 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		 
		 ajax.onreadystatechange = function() {
			//enquanto estiver processando...emite a msg de carregando
			if(ajax.readyState == 1) {
			   idOpcao.innerHTML = "Carregando...!";   
			}
			//após ser processado - chama função processXML que vai varrer os dados
			if(ajax.readyState == 4 ) {
			   if(ajax.responseXML) {
				  processXML(ajax.responseXML);
			   }
			   else {
				   //caso não seja um arquivo XML emite a mensagem abaixo
				   idOpcao.innerHTML = "--Primeiro selecione o estado--";
			   }
			}
		 }
		 //passa o código do estado escolhido
		 var params = "estado="+valor;
		 ajax.send(params);
	  }
   }
   
   function processXML(obj){
	  //pega a tag cidade
	  var dataArray   = obj.getElementsByTagName("cidade");
	  
	  //total de elementos contidos na tag cidade
	  if(dataArray.length > 0) {
		 //percorre o arquivo XML para extrair os dados
		 for(var i = 0; i < dataArray.length; i++) {
			var item = dataArray[i];
			//contéudo dos campos no arquivo XML
			var codigo	=  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
			var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
			
			idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
			
			//cria um novo option dinamicamente  
			var novo = document.createElement("option");
				//atribui um ID a esse elemento
				novo.setAttribute("id", "opcoes");
				//atribui um valor
				novo.value = codigo;
				//atribui um texto
				novo.text  = descricao;
				//finalmente adiciona o novo elemento
				document.forms[0].listCidades.options.add(novo);
		 }
	  }
	  else {
		//caso o XML volte vazio, printa a mensagem abaixo
		idOpcao.innerHTML = "--Não retornou nada!--";
	  }	  
   }

</script>

<html>
   <head>
	  <title>127º artigo PHP</title>
	  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   </head>
   
   <body bgcolor="#FFFFFF">
   <table width="200" border="1" cellspacing="0" cellpadding="0" align="center">
	 <tr>
	   <td>Cadastra Cidade!</td>
	 </tr>
   </table>
   <p> </p>
<form name="frmAjax">
		 Estado: 
		 <select name="listEstados" onChange="Dados(this.value);">
			<option value="0">--Selecione o estado >></option>
			<? for($i=0; $i<$row; $i++) { ?>
			   <option value="<? echo mysql_result($sql, $i, "ID_ESTADO"); ?>">
			   <? echo mysql_result($sql, $i, "DSC_ESTADO"); ?></option>
			<? } ?>
		 </select>
	  
		 <br><br>
		 Cidade: 
		 <select name="listCidades" onChange="alert(this.value);">
			<option id="opcoes" value="0">--Primeiro selecione o estado--</option>
		 </select>
	  </form>
   </body>
</html>

Ai se alguem quize ver ai o q q esse codigo faz entra ai e ve que da o refresh mas nao aparece a cidade.

 

Vlw galera!

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.