Jump to content


Serafin

Member Since 25/06/2007
Offline Last Active 02/03/2008, 22:35
-----

Topics I've Started

Populando Combobox Com Ajax ( Pesquisa De Estados )

22/10/2007, 12:37

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://felipesantiag...des/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> :click:
<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.rafaelcun.../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í....
:lol: :assobio: :ph34r: :boxing:

IPB Skin By Virteq