NCMR 0 Denunciar post Postado Outubro 22, 2007 Olá pessoal, encontrei esse script na net....modifiquei algumas coisas.... porém os dados deverão voltar na forma de um select......e ai tudo bem....só que não está funfando...então.....se alguém entender ou achar o problema...pode nos ajudar muito...... Primeiro vamos ter uma tabela com todas as cidades brasileiras - pode pegar o sql nesse endereço http://felipesantiago.com/scripts/cidades/cidades.sql Segundo você precisa fazer o download do framework do JQuery nesse link http://jquery.com/ Deve colocar o arquivo jquery.js no servidor... Depois de criar a tabela, veja na íntegra o script para criar o form.... <HTML><HEAD><TITLE></TITLE><META NAME="GENERATOR" Content="Microsoft Visual Studio"><META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"></HEAD><BODY> <script type="text/javascript" src="jquery.js"></script><script type="text/javascript">$().ready(function(resposta) { $("select[@name=listEstados]").change(function(){ $('select[@name=listCidades]').html('<option value="sda">Procurando :::::::</option>'); $.post('buscacidade.php', { estados : $(this).val() }, function(resposta){ alert(resposta); $('select[@name=listCidades]').html(resposta); } ); });});</script></head><body><div align="center"> <h1 style="border:dotted #00FFFF;"> Populando ComboBox com AJAX ( Pesquisa de estados ) </h1> <h2 style="color:#FF0000"> Utilizando framework JQuery </h2></div> <form name="frmAjax"> <label for="listEstados"> Estado: </label> <select name="listEstados"> <option value="0"> Selecione o estado >></option> <option value="ac"> Acre</option> <option value="al"> Alagoas</option> <option value="ap"> Amapa</option> <option value="am"> Amazonas</option> <option value="ba"> Bahia</option> <option value="ce"> Ceara</option> <option value="df"> Distrito Federal</option> <option value="es"> Espirito Santo</option> <option value="go"> Goias</option> <option value="ma"> Maranhao</option> <option value="mt"> Mato Grosso</option> <option value="ms"> Mato Grosso do Sul</option> <option value="mg"> Minhas Gerais</option> <option value="pa"> Para</option> <option value="pb"> Paraiba</option> <option value="pr"> Parana</option> <option value="pe"> Pernambuco</option> <option value="pi"> Piaui</option> <option value="rj"> Rio de Janeiro</option> <option value="rn"> Rio Grande do Norte</option> <option value="rs"> Rio Grande do Sul</option> <option value="ro"> Rondonia</option> <option value="rr"> Roraima</option> <option value="sc"> Santa Catarina</option> <option value="sp"> Sao Paulo</option> <option value="se"> Sergipe</option> <option value="to"> Tocantins</option> </select> <br><br> <label for="listCidades">Cidade: </label> <select name="listCidades"> <option id="opcoes" value="0">-- Primeiro selecione o estado --</option> </select> </form></BODY></HTML> .....e também o arquivo buscacidade.php ..... <HTML><HEAD> <TITLE>Novo Documento</TITLE></HEAD><BODY> <?function crossUrlDecode($source) {$decodedStr = '';$pos = 0;$len = strlen($source);while ($pos < $len) {$charAt = substr ($source, $pos, 1);if ($charAt == '?') {$char2 = substr($source, $pos, 2);$decodedStr .= htmlentities(utf8_decode($char2),ENT_QUOTES,'ISO-8859-1');$pos += 2;}elseif(ord($charAt) > 127) {$decodedStr .= "".ord($charAt).";";$pos++;}elseif($charAt == '%') {$pos++;$hex2 = substr($source, $pos, 2);$dechex = chr(hexdec($hex2));if($dechex == '?') {$pos += 2;if(substr($source, $pos, 1) == '%') {$pos++;$char2a = chr(hexdec(substr($source, $pos, 2)));$decodedStr .= htmlentities(utf8_decode($dechex . $char2a),ENT_QUOTES,'ISO-8859-1');}else {$decodedStr .= htmlentities(utf8_decode($dechex));}}else {$decodedStr .= $dechex;}$pos += 2;}else {$decodedStr .= $charAt;$pos++;}}return $decodedStr;} if (isset($_POST['estados'])){ $conexao = mysql_connect("*******","*****","*******")or die("Erro ao Tenta Conectar com o Servidor de Mysql<br>Erro:".mysql_error());; mysql_select_db("empregos", $conexao) or die("Não foi possivel selecionar a base de dados<br>Erro:".mysql_error()); $res=mysql_query('SELECT * FROM cidades WHERE uf = \''.$_POST['estados'].'\''); $cont=0; while($ok=mysql_fetch_array($res)){ $vai=crossUrlDecode($ok['municipio']); echo ("<option value = ".$cont.">".$vai." <br /></option>"); $cont++; } }else{ echo 'Erro no envio dos dados'; }?></BODY></HTML> então.....você pode colocá-lo pra rodar ai.....e veja o que acontece...... ALGUÉM SABE COMO CORRIGIR OU ONDE ESTÁ O PROBLEMA...... acho que deve ser echo ("<option value = ".$cont.">".$vai." <br /></option>"); no alert, aparece todas as cidades de acordo com o uf e um value diferente para cada cidade.....porém quando você clicar em ok (do alert)....não funfa!.... Se alguém souber......ajuda nós aí.... Para ver esse script funcionando corretamente.....pode acessar http://www.rafaelcunha.com/testes/estado/ porém não sei como está configurado o arquivo buscacidade.php obs: coloquei um * (asterisco) aqui na função de conexão apenas para proteger os meus dados....hehehehe! Bem, esse script eu encontrei nesse link......http://www.rafaelcunha.com/2007/05/10/populando-combobox-com-jquery-ajax/#comment-4372 então é isso aí.... http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif :rolleyes: http://forum.imasters.com.br/public/style_emoticons/default/excl.gif Compartilhar este post Link para o post Compartilhar em outros sites
fabvalerio 0 Denunciar post Postado Novembro 1, 2007 Então este problema esta acontecendo comigo tbm ele não esta jogando o valor dentro do SELECT Provavelmente pode ter um erro no JavaScript, se alguem poder me ajuda ficarei muito GRATO!! meu script: INDEX2.PHP <HTML> <HEAD> <TITLE></TITLE> <META NAME="GENERATOR" Content="Microsoft Visual Studio"> <META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8"> </HEAD> <BODY> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $().ready(function() { $("select[@name=listEstados]").change(function(){ $('select[@name=listCidades]').html('<option>Procurando :::::::</option>'); $.post('publicidade2.php', { estado : $(this).val() }, function(resposta){ $('select[@name=listCidades]').html(resposta); } ); }); }); </script> </head> <body> <div align="center"> <h1 style="border:dotted #00FFFF;"> ComboBox com AJAX </h1> </div> <form name="frmAjax"> <label for="listEstados"> Estado: </label> <select name="listEstados"> <option value="0"> Selecione o estado >></option> <option value="ac">Acre</option> <option value="al">Alagoas</option> <option value="ap">Amapa</option> <option value="am">Amazonas</option> <option value="ba">Bahia</option> <option value="ce">Ceara</option> <option value="df">Distrito Federal</option> <option value="es">Espirito Santo</option> <option value="go">Goias</option> <option value="ma">Maranhao</option> <option value="mt">Mato Grosso</option> <option value="ms">Mato Grosso do Sul</option> <option value="mg">Minhas Gerais</option> <option value="pa">Para</option> <option value="pb">Paraiba</option> <option value="pr">Parana</option> <option value="pe">Pernambuco</option> <option value="pi">Piaui</option> <option value="rj">Rio de Janeiro</option> <option value="rn">Rio Grande do Norte</option> <option value="rs">Rio Grande do Sul</option> <option value="ro">Rondonia</option> <option value="rr">Roraima</option> <option value="sc">Santa Catarina</option> <option value="sp">Sao Paulo</option> <option value="se">Sergipe</option> <option value="to">Tocantins</option> </select> <br><br> <label for="listCidades">Cidade: </label> <select name="listCidades" id="listCidades"> <option id="opcoes" value="0">Aguardando Resp.</option> </select> </form> <form name="form1" method="post" action="publicidade2.php"> <p><br> <strong>Teste </strong> <select name="listEstados" id="listEstados"> <option value="0"> Selecione o estado >></option> <option value="ac"> Acre</option> <option value="al"> Alagoas</option> <option value="ap"> Amapa</option> <option value="am"> Amazonas</option> <option value="ba"> Bahia</option> <option value="ce"> Ceara</option> <option value="df"> Distrito Federal</option> <option value="es"> Espirito Santo</option> <option value="go"> Goias</option> <option value="ma"> Maranhao</option> <option value="mt"> Mato Grosso</option> <option value="ms"> Mato Grosso do Sul</option> <option value="mg"> Minhas Gerais</option> <option value="pa"> Para</option> <option value="pb"> Paraiba</option> <option value="pr"> Parana</option> <option value="pe"> Pernambuco</option> <option value="pi"> Piaui</option> <option value="rj"> Rio de Janeiro</option> <option value="rn"> Rio Grande do Norte</option> <option value="rs"> Rio Grande do Sul</option> <option value="ro"> Rondonia</option> <option value="rr"> Roraima</option> <option value="sc"> Santa Catarina</option> <option value="sp"> Sao Paulo</option> <option value="se"> Sergipe</option> <option value="to"> Tocantins</option> </select> <input type="submit" name="button" id="button" value="Submit"> </p> </form> <p> </p> </BODY> </HTML> PUBLICIDADE2.PHP <HTML> <HEAD> <TITLE>Novo Documento</TITLE> </HEAD> <BODY> <? require_once('MYCONEXAO'); $sql = "SELECT * FROM cidades WHERE uf='$_POST[listEstados]' ORDER BY uf DESC"; $qr= mysql_query($sql); $row = mysql_fetch_array($qr); $res= $qr; $cont=0; while($row=mysql_fetch_array($res)){ echo "<option value = ".$row['id'].">".$row['municipio']." <br /></option>"; $cont++; } ?> </BODY> </HTML> Download do JS : http://www.revistaquemindica.com.br/estado/jquery.js SQL das cidades: http://felipesantiago.com/scripts/cidades/cidades.sql FONTE: http://www.rafaelcunha.com/2007/05/10/popu...x/#comment-4372 Fabio Valerio fabvalerio@hotmail.com http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
hugosenna 0 Denunciar post Postado Janeiro 5, 2009 Bom pessoal depois de algum tempo conseguir resolver o problema. segue abaixo o codigo funcionando: o arquivo jquery.js basta voces baixarem a ultima versao. o arquivo sql pode ser baixando em http://felipesantiago.com/scripts/cidades/cidades.sql index.php <?php // configurações gerais de cabeçalho: // modificado por Hugo Senna - hugosenna@gmail.com header("Content-Type: text/html; charset=ISO-8859-1",true); $gmtDate = gmdate("D, d M Y H:i:s"); header("Expires: {$gmtDate} GMT"); header("Last-Modified: {$gmtDate} GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); $conect = mysql_connect("localhost", "root", "123"); if (!$conect) die ("<h1>Falha na coneco com o Banco de Dados!</h1>"); $db = mysql_select_db("cidadesestadossjax"); ?> <script type="text/javascript" src="jquery.js" language="javascript"></script> <script type="text/javascript"> $().ready(function() { $("select[@name=listEstados]").change(function(){ $('select[@name=listCidades]').html('<option value="sda">Procurando :::::::</option>'); $.post('buscacidade.php', { estado : $(this).val() }, function(resposta){ $('select[@name=listCidades]').html(resposta); } ); }); }); </script> <body> <form name="frmAjax"> <label for="listEstados"> Estado: </label> <select name="listEstados"> <option value="0"> Selecione o estado>></option> <option value="ac">Acre</option> <option value="al">Alagoas</option> <option value="ap">Amapa</option> <option value="am">Amazonas</option> <option value="ba">Bahia</option> <option value="ce">Ceara</option> <option value="df">Distrito Federal</option> <option value="es">Espirito Santo</option> <option value="go">Goias</option><option value="ma">Maranhao</option><option value="mt">Mato Grosso</option><option value="ms">Mato Grosso do Sul</option><option value="mg">Minhas Gerais</option><option value="pa">Para</option><option value="pb">Paraiba</option><option value="pr">Parana</option><option value="pe">Pernambuco</option><option value="pi">Piaui</option><option value="rj">Rio de Janeiro</option><option value="rn">Rio Grande do Norte</option><option value="rs">Rio Grande do Sul</option><option value="ro">Rondonia</option><option value="rr">Roraima</option><option value="sc">Santa Catarina</option><option value="sp">Sao Paulo</option><option value="se">Sergipe</option><option value="to">Tocantins</option> </select> <label for="listCidades">Cidade: </label> <select name="listCidades"> <option id="opcoes" value="0">-- Primeiro selecione o estado --</option> </select> </form> buscacidade.php <?php // configurações gerais de cabeçalho: // modificado por Hugo Senna - hugosenna@gmail.com header("Content-Type: text/html; charset=ISO-8859-1",true); $gmtDate = gmdate("D, d M Y H:i:s"); header("Expires: {$gmtDate} GMT"); header("Last-Modified: {$gmtDate} GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); $conect = mysql_connect("localhost", "root", "123"); if (!$conect) die ("<h1>Falha na coneco com o Banco de Dados!</h1>"); $db = mysql_select_db("cidadesestadossjax"); ?> <option selected="selected" value="0">---Escolha uma opção---</option> <?php $res=mysql_query('SELECT * FROM cidades WHERE uf = \''.$_POST['estado'].'\''); while($linhaC = mysql_fetch_array($res)) { ?> <option value="<?=$linhaC['id'];?>"><?=$linhaC['municipio'];?></option> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Fdarela 0 Denunciar post Postado Fevereiro 17, 2009 Olha só hugosena boa tarde, As correções que você fez funcionaram muito bem heheh, e esse código, é bem interessante, e estou colocando no meu formulário de contato e cadastro. Mas...tem o seguinte, vmos ver se você póde me ajudar, ou o resto da galera. Eu estou contruindo um formulário veja o exemplo neste link Veja o exemplo Então, ele tem vários combos, e o que eu quero é que por exemplo all selecionar uma opção no primeiro, carregue o segundo ao selecionar uma opção no segundo, carregue o terceiro, e assim sucesivamente, e até agorra não consegui fazer com que isso funcione. Tipo assim no dos estados e cidades, ele seleciona o estado e pela UF, ele carrega as cidades, mas não consigo fazer com o mesmo proceso ele carregue um terceiro, e um quarto e assim sucesivamente Alguém me ajude, já estou com a cabeça fervendo heheheh Já tem tei com ajax, mas só consegui carregar as variáveis no mesmo combo, ou seja seleciono no primeiro, carrega o segundo, seleciono o segundo ele carrega, só que no mesmo combo, não no próximo... to ficando meio doido com isso já. o conteúdo de cada combo é praticamente o que esta´no exemplo, com exeção dos motores mwm e mercedes, que tem seleções diferenciadas dos outros Desde j´agradeço a ajuda Compartilhar este post Link para o post Compartilhar em outros sites