Ir para conteúdo

POWERED BY:

Arquivado

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

phcouto

Mas me falta como fazer

Recommended Posts

Bom pessoal, bom dia.

 

Talvez a minha dúvida seja bem simples para muitos, mas estou apanhando bem, na verdade não sei nem como procurar, já li muitos tópicos achando que talvez resolveria meu problema, mas não achei, acho que só eu tenho esta dúvida http://forum.imasters.com.br/public/style_emoticons/default/cry.gif .

 

É o seguinte, tenho dois combos um com estados e o outro com as cidades que é preenchido via ajax depois que o usuário escolhe o estado. Até aí beleza. Vamos à dúvida, depois que o usuário escolher a cidade, gostaría de exibir abaixo o representante que a empresa tem para aquela cidade, ou seja, se fosse em php simples, ele enviaria uma variável para uma busca no bd e depois ia imprimir as informações na tela em outra página, mas queria fazer isso usando ajax para que as combos não sejam esvaziadas num reload de página, dando a opção do usuário escolher outras cidades no mesmo estado, sem ter que começar a busca do zero.

 

É isso, se por acaso já existe algum tópico a respeito disso, me desculpem, mas não soube achar.

 

Até mais e desde já agradeço a atenção.

Paulo Henrique

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Thiago,

 

Estava achando que era tão complicado pela minha total falta de conhecimento em ajax, que nem tentei fazer assim, vou aplicar o que você me disse e se tiver mais alguma posto aqui. Muito obrigado.

 

Na verdade não é nada simples como eu estava achando, não sei praticamente nada de ajax, por isso estou utilizando um código que achei na net e estava estudando o código para entender como funciona e aplicar mudanças que atenderiam minhas necessidades. Sempre que não sei fazer algo, pego um código e estudo bem detalhadamente pra aprender, mas cara, estou muito enrolado aqui e não estou conseguindo estudar o código. Não adianta, por isso, se não for pedir demais, vou postar o código que já existe para as cidades e estados e você só me indica onde devo alterar para fazer funcionar. Já até comecei mas sem resultado.

 

Desde já agradeço sua atenção e compreensão.

 

Esta parte eu adicionei

 

function Cidade(valor) {	  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;			}		 }	  }
E aqui também:

 

onChange="Cidade(this.value);"
<?require_once("conecta.php");$sql = "SELECT a.id, a.uf, a.nome FROM dados_estados a ORDER BY a.nome";$sql = mysql_query($sql);$row = mysql_num_rows($sql); ?><script language="JavaScript">function Cidade(valor) {	  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;			}		 }	  }function Dados(valor) {	  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;			}		 }	  }	  if(ajax) {		 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() {			if(ajax.readyState == 1) {			   idOpcao.innerHTML = "Aguarde...!";			}			if(ajax.readyState == 4 ) {			   if(ajax.responseXML) {				  processXML(ajax.responseXML);			   }			   else {				   idOpcao.innerHTML = "Selecione o Estado";			   }			}		 }		 var params = "estado="+valor;		 ajax.send(params);	  }   }   function processXML(obj){	  var dataArray   = obj.getElementsByTagName("cidade");	  if(dataArray.length > 0) {		 for(var i = 0; i < dataArray.length; i++) {			var item = dataArray[i];			var codigo	=  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;			var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;			idOpcao.innerHTML = "Selecione uma opção";			var novo = document.createElement("option");				novo.setAttribute("id", "opcoes");				novo.value = codigo;				novo.text  = descricao;				document.forms[0].listCidades.options.add(novo);		 }	  }	  else {		idOpcao.innerHTML = "Selecione o Estado";	  }	     }</script><html>   <head>	  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">   </head>      <body bgcolor="#FFFFFF">   <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"); ?>">			   <? echo mysql_result($sql, $i, "nome"); ?></option>			<? } ?>		 </select>		 <br><br>		 Cidade: 		 <select name="listCidades" onChange="Cidade(this.value);">			<option id="opcoes" value="0">Selecione o Estado</option>		 </select>	  </form>			   </body></html>
Bem o que fiz na verdade, foi copiar a função Dados e renomeá-la para Cidade, aí que está, já ví que tem que modificar o código pra baixo de onde criei a função para por receber o valor do combo cidades, mas não tenho nem idéia.

 

 

 

Paulo Henrique

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.