Ir para conteúdo

POWERED BY:

Arquivado

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

delaruvi

em carregar combobox sem refresh

Recommended Posts

Ola pessoal td certo?

 

Estou seguindo esse tutorial do imasters http://www.imasters.com.br/artigo/3918/jav...os_sem_refresh/

tipo estou só que não esta dando muito certo as alterações que fiz no script para que ele funcione conforme minhas necessidades.

 

Alguém pode me ajudar o script está ai:

 

 

index.php

<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].id_marca.options.length = 1;		 		 idOpcao  = document.getElementById("opcoes");		 		 ajax.open("POST", "marcas.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 = "categoria="+valor;		 ajax.send(params);	  }   }      function processXML(obj){	  //pega a tag cidade	  var dataArray   = obj.getElementsByTagName("marcaveiculo");	  	  //total de elementos contidos na tag cidade	  if(dataArray.length > 0) {		 //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 idmarca	=  item.getElementsByTagName("idmarca")[0].firstChild.nodeValue;			var nomemarca =  item.getElementsByTagName("nomemarca")[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 = idmarca;				//atribui um texto				novo.text  = nomemarca;				//finalmente adiciona o novo elemento				document.forms[0].id_marca.options.add(novo);		 }	  }	  else {		//caso o XML volte vazio, printa a mensagem abaixo		idOpcao.innerHTML = "--Primeiro selecione o estado--";	  }	     }</script><?include("superior.php");?>  <form method="post" action="pesquisa.php"><select name="id_tipo" style="width:140px" onChange="Dados(this.value);">				  <option value="0">Selecione</option><?	$tipo = @mysql_query("SELECT DISTINCT nome FROM CatVeiculo ORDER BY nome") or die("Erro no banco de dados!");	while($ddtipo = @mysql_fetch_array($tipo)){	$idt = @mysql_query("SELECT id FROM Marca WHERE nome='".$ddtipo["nome"]."'") or die("Erro no banco de dados!");	$ddidt = @mysql_fetch_array($idt);	echo'<option value="'.$ddidt["id"].'">'.$ddtipo["nome"].'</option>';	}?>				  </select><select name="id_marca" style="width:140px" onChange="alert(this.value);"><option id="opcoes" value="0">Selecione</option></select>					<input type="Submit" name="Submit" value="Submit">						</form>

 

marcas.php

<?//CONECTA AO MYSQL					 require_once("cmysql.php");		   //RECEBE PARÃMETRO					 $pCategoria = $_POST["categoria"];		   //QUERY$sql = mysql_query("SELECT * FROM Marca WHERE id_categoria='".$pCategoria."' ORDER BY nome");	   $row = mysql_num_rows($sql);   //VERIFICA SE VOLTOU ALGO if($row) {$dados = mysql_fetch_array($sql);			     //XML   $xml  = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";   $xml .= "<marcasveiculos>\n";			         //PERCORRE ARRAY			   for($i=0; $i<$row; $i++) {  	   	  $xml .= "<marcaveiculo>\n";	 	  $xml .= "<idmarca>".$dados['id']."</idmarca>\n";				  	  $xml .= "<nomemarca>".$dados['nome']."</nomemarca>\n";		 	  $xml .= "</marcaveiculo>\n";	   }//FECHA FOR				       $xml.= "</marcasveiculos>\n";      //CABEÇALHO   header("Content-type: application/xml; charset=iso-8859-1"); }//FECHA IF (row)											   //PRINTA O RESULTADO  echo $xml;			?>

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo esta tudo certo com o código em javascript e tudo mais,So que está acontecendo o seguinte, ele funciona normalmente quando eu não coloco um outro <form> que cadastra usuarioa a newsleter;Quando eu tiro esse <form> que cadastrada na newsletter o outro form com os combbox funciona normalmente.O que será que esta acontecendo? Alguem sabe ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei aqui mais nao deu einmesmo resultado o combo nao tem reação nenhuma ao ser clicado mais quando tiro o formulario da newsletter ele cunfionaobrigado

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.