Ir para conteúdo
Fórum Script Brasil
  • 0

Populando Combobox Com Ajax ( Pesquisa De Estados )


ncmr

Pergunta

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

Editado por ESerra
Utilize as tags [code][/code] ou [codebox][/codebox] para códigos longos...
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,4k
    • Posts
      652,2k
×
×
  • Criar Novo...