inforicky 0 Denunciar post Postado Janeiro 5, 2008 Estou tentando adaptar de acordo com o tuto http://imasters.com.br/artigo/3918/jav...os_sem_refresh/ o primeiro combo carrega e seleciona seleciona ok <? /* ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- */ //CONECTA AO MYSQL require_once("conecta.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 paara extrair os dados for(var i = 0 ; i < dataArray.length ; i++) { var item = dataArray; //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 = "--Primeiro selecione o estado--"; } } </script> <html> <head> <title>127º artigo PHP</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <h1>127º artigo: AJAX + PHP</h1> Carregando cidades sem dar refresh na página. <br><br> <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> o meu : :clap: :joia: <? /* ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- */ //CONECTA AO MYSQL require_once("conecta.php"); //PEGA OS ESTADOS $sql = "SELECT distinct nommar FROM cadite order by nommar asc"; //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", "veiculos.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 a marca--"; } } } //passa o código do estado escolhido var params = "nommar="+valor; ajax.send(params); } } function processXML(obj){ //pega a tag cidade var dataArray = obj.getElementsByTagName("veiculos"); //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; //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 = "--Primeiro selecione a marca--"; } } </script> <html> <head> <title>COMBO BOX</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF"> <h1>COMBO BOX: AJAX + PHP</h1> Carregando sem dar refresh na página. <br><br> <form name="frmAjax"> Marca: <select name="listEstados" onChange="Dados(this.value);"> <option value="0">--Selecione a marca >></option> <? for($i=0; $i<$row; $i++) { ?> <option value="<? echo mysql_result($sql, $i, "id_marca"); ?>"> <? echo mysql_result($sql, $i, "nommar"); ?></option> <? } ?> </select> <br><br> Veiculo: <select name="listCidades" onChange="alert(this.value);"> <option id="opcoes" value="0">--Primeiro selecione a marca--</option> </select> </form> </body> </html> o segunco combo: <? /****************************************************************** // ARQUIVO ...: Monta o XML das Cidades // BY ........: Júlio César Martini // DATA ......: 14/03/2006 /******************************************************************/ //CONECTA AO MYSQL require_once("conecta.php"); //RECEBE PARÃMETRO $pEstado = $_POST["estado"]; //QUERY $sql = " SELECT a.id_cidade, a.dsc_cidade FROM cidades a WHERE a.cod_estado = ".$pEstado." ORDER BY a.dsc_cidade"; //EXECUTA A QUERY $sql = mysql_query($sql); $row = mysql_num_rows($sql); //VERIFICA SE VOLTOU ALGO if($row) { //XML $xml = "<?xml version="1.0" encoding="ISO-8859-1"?>n"; $xml .= "<cidades>n"; //PERCORRE ARRAY for($i=0; $i<$row; $i++) { $codigo = mysql_result($sql, $i, "id_cidade"); $descricao = mysql_result($sql, $i, "dsc_cidade"); $xml .= "<cidade>n"; $xml .= "<codigo>".$codigo."</codigo>n"; $xml .= "<descricao>".$descricao."</descricao>n"; $xml .= "</cidade>n"; }//FECHA FOR $xml.= "</cidades>n"; //CABEÇALHO Header("Content-type: application/xml; charset=iso-8859-1"); }//FECHA IF (row) //PRINTA O RESULTADO echo $xml; ?> o meu : :clap: :joia: <? /****************************************************************** // ARQUIVO ...: Monta o XML das Cidades // BY ........: Júlio César Martini // DATA ......: 14/03/2006 /******************************************************************/ //CONECTA AO MYSQL require_once("conecta.php"); //RECEBE PARÃMETRO $marca = $_POST["nommar"]; //QUERY $sql = "SELECT veiculo FROM veiculos where id_marca = ".$marca." order by veiculo"; //EXECUTA A QUERY $sql = mysql_query($sql); $row = mysql_num_rows($sql); //VERIFICA SE VOLTOU ALGO if($row) { //XML $xml = "<?xml version="1.0" encoding="ISO-8859-1"?>n"; $xml .= "<veiculos>n"; //PERCORRE ARRAY for($i=0; $i<$row; $i++) { $id_marca = mysql_result($sql, $i, "id_marca"); $veiculo = mysql_result($sql, $i, "veiculo"); $xml .= "<cidade>n"; $xml .= "<marca>".$id_marca."</marca>n"; $xml .= "<veiculo>".$veiculo."</veiculo>n"; $xml .= "</cidade>n"; }//FECHA FOR $xml.= "</veiculos>n"; //CABEÇALHO Header("Content-type: application/xml; charset=iso-8859-1"); }//FECHA IF (row) //PRINTA O RESULTADO echo $xml; ?> me ajudem por favor.... Compartilhar este post Link para o post Compartilhar em outros sites
inforicky 0 Denunciar post Postado Janeiro 11, 2008 resolvido Compartilhar este post Link para o post Compartilhar em outros sites
Roberto_S_Luz 2 Denunciar post Postado Agosto 14, 2008 Meu amigo, estou com a mesma duvida que você estava antes aí...porém gostaria de saber, como você resolveu o seu. Bom...irei postar a parada aki caso alguem souber como resolver... /*metodo consultar estado*/ CODE public function consultar(){ $db = new conexao(); $db->abrir(); $sql = "select `estado`.`est_codigo`,`estado`.`est_sigla` from `estado` order by `estado`.`est_sigla`"; //EXECUTA A QUERY $resultado = $db->consulta($sql); $busca = mysql_num_rows($resultado); for($i=0; $i<$busca; $i++) { ?> <option value="<? echo mysql_result($resultado, $i, "est_codigo"); ?>"> <? echo mysql_result($resultado, $i, "est_sigla"); ?></option> <? } } } index.php CODE ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- /*Tutorial adaptado para o meu caso, mais a ideia peguei do Júlio Cesar*/ <script src="script.js"></script> Estado: <select name="estado" onChange="Dados(this.value);"> <? $estado->consultar(); ?> </select> <a href="../estado/form_estado.php"><input type="button" name="novo" value="Novo"></a><br><br> Municipio: <select name="listCidades" onChange="alert(this.value);"> <option id="opcoes" value="0">--Primeiro selecione o estado--</option> </select> <a href="../municipio/form_municipio.php"><input type="button" name="novo" value="Novo"></a><br><br> até aki...tá as mil maravilhas, está consultando os estados de boa...mas...em diante...rsssssscripts.js CODE ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- /*Tutorial adaptado para o meu caso, mais a ideia peguei do Júlio Cesar*/ 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", "cidade.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 paara extrair os dados for(var i = 0 ; i < dataArray.length ; i++) { var item = dataArray; //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 = "--Primeiro selecione o estado--"; } } Bucando os municipios CODE <?php ---------------------------------------------------------------------- Arquivo .............: AJAX + PHP Desenvolvido por ....: Júlio César Martini Matéria .............: Artigo 127 - www.imasters.com.br Criado em ..........: 14/03/2006 ---------------------------------------------------------------------- /*Tutorial adaptado para o meu caso, mais a ideia peguei do Júlio Cesar*/ require_once $_SERVER['DOCUMENT_ROOT']."/conexao.php"; $geral = new geral(); $geral->conexao(); $conexao = new conexao(); $Estado = $_POST["estado"]; //QUERY $sql = "SELECT mun_codigo, mun_descricao FROM municipio WHERE est_codigo = ".$Estado." ORDER BY mun_descricao"; //EXECUTA A QUERY $resultado = $db->consulta($sql); $busca = mysql_num_rows($resultado); //VERIFICA SE VOLTOU ALGO if($busca) { //XML $xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; $xml .= "<cidades>\n"; //PERCORRE ARRAY for($i=0; $i<$busca; $i++) { $codigo = mysql_result($resultado, $i, "mun_codigo"); $descricao = mysql_result($resultado, $i, "mun_descricao"); $xml .= "<cidade>\n"; $xml .= "<codigo>".$codigo."</codigo>\n"; $xml .= "<descricao>".$descricao."</descricao>\n"; $xml .= "</cidade>\n"; }//FECHA FOR $xml.= "</cidades>\n"; //CABEÇALHO Header("Content-type: application/xml; charset=iso-8859-1"); }//FECHA IF (row) //PRINTA O RESULTADO echo $xml; ?> Bom...o que acontece é que...seleciona os estados mas não puxa os municipios...apenas dá tipo um refresh no comobox da cidade, mas não aparece nada...além do mais...nem sei se está fazendo a consulta mesmo, mais esse é o problema...rsss Bom...caso alguem possa me dar uma maozinha...ficarei grato... E obrigado desej já... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif Compartilhar este post Link para o post Compartilhar em outros sites
dohnbrasil 0 Denunciar post Postado Março 31, 2009 eae rickly tem como ajudar a gente nao ? tb nao consegui! Compartilhar este post Link para o post Compartilhar em outros sites