Jump to content
Fórum Script Brasil
  • 0

Populando Combobox Com Ajax ( Pesquisa De Estados )


ncmr

Question

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>

&lt;script type="text/javascript" src="jquery.js"></script>

&lt;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="muito">

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">

são 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>[/codebox]

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 funciona!....

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í.... Populando ComboBox com AJAX ( Pesquisa de estados )

:blink: :unsure: :ph34r: :lol: :o :P

Edited by ESerra
Utilize as tags [code][/code] ou [codebox][/codebox] para códigos longos...
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...