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

Como Apresentar Cidades De Acordo Com Estado?


Guest Evandro Felipe

Pergunta

Guest Evandro Felipe

:) Caros amigos,

Tenho visto em alguns sites que possibilitam o cadastro de cidades que ao usuario escolher o estado, automaticamente são apresentadas as cidades do respectivo estado sem a necessidade de abrir toda a pagina para apresenta-las. Elas são apresentadas automaticamente num <select><option>....

Como se faz isso?

Existem cadastradas no ibge 5000 cidades e realmente apresenta-las demora muuuiittoo.

Locais de exemplos:

Ao cadastrar seu curriculo no catho, por exemplo, tem esta funcionalidade.

Ao criar um site no hpg, num daqueles passos (se não me engano o ultimo), existe esta funcionalidade e muito rapida (excelente). Mas não esta relativa ao estado e cidades e sim a categoria e respectivas sub-categorias do site.

Quando eu coloco para exibir atraves do <select><option>.... as 5000 cidades fica lento de mais. Agora se o usuario selecionar o estado e automaticamente forem aresentadas em outro <select><option>.... as respectivas cidades, não fica pesado.

A minha necessidade é aprender como realizar tal procedimento.

Agradeco por qualquer ajuda.

Cordialmente,

Evandro Felipe.

Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 0
Guest Evandro Felipe

Obrigado por responderem.

Trabalhar com a linguagem eu sei. Utilizo o php e mysql.

não há como pegar pronto. A funcao que realiza o procedimento não aparece no script. não me importo em comcar do zero. Meu problema é como comecar do zero se não entendo de javascript.

Minha dificuldade é como encaixar isto no javascript, par não ter que reapresentar a mesma tela para o usuario. Gostaria de fossem jogadas diretamente no <seelct><option>.... relativo às cidades.

E o problema é como fazer isso? Qual os comandos em javascript para realizar este procedimento?

Se me auxiliarem nestes comandos está resolvido.

Aguardo.

Evandro Felipe.

Link para o comentário
Compartilhar em outros sites

  • 0

Considerando q a sua tab de Cidades tnha os seguintes campos: ID, Cidade, UF (nesta ordem),

O script p o combo de estados seria:

<?

$qr = "SELECT * FROM Cidades";

$result = mysql_query ($qr,$conexao);

$total = mysql_num_rows ($result);

echo "<select name='comboUF' class='txt' id='UF'>";

echo "<option value='0'>Escolha o Estado</option>";

while ($row = mysql_fetch_row ($result)) {

$selected = "";

echo "<option value='$row[0]' $selected>$row[2]</option>";

}

echo "</select>";

?>

Agora p montar o combo de cidades basta fazer um SELECT WHERE UF = $row[2] e montar um novo while.

Eu não testei, + deve dar certo! :)

Qualquer erro só postar! ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Olha lá vai uma dica... mais apenas uma dica...

1 terá que usar o BD

1.1: crie uma tabela uf com os campos (cd_uf, desc_uf) onde cd_uf é o codigo e desc_uf é a descrição)

1.2: crie uma tabela de cidade com os campos (cd_cidade, cd_uf, desc_cidade) onde bla bla bla... Isso você já sabe...

Vamos ao código...

2. Numa página html, recomendo colocar um combo (chamo de combo por causa do delphi) faça um select para chamar todas as UF´s...

3. Agora vem o macete, colo que na mesma página um iframe chamando uma outra página ver_cidade.php.

nela você vai colocar um select tipo... "Select cd_cidade, desc_cidade where cd_uf = _POST($campo)

Sim e para chama-la? Lá vai outra dica... se você utiliza o dreamweaver como editor parabens... no combo de UF, no evento onchange você vai mandar ir para outra página a ver_cidade.php (lembrando que o target do codigo deve ser o mesmo nome o iframe) ai no evento você coloca. documento.location = "ver_cidade.php?cd_uf=codigodaufselecionada"

pronto.. moleza... espero que tenha entendido...

Boa sorte...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Evandro Felipe

Caros amigos,

Obrigado por responderem.

Com relacao a selecionar as cidades atraves php e mysql, está beleza. Dá pra fazer tranquilo. O problema é causar o efeito que desejo.

Caro Cadu20,

já havia pensado em fazer desta forma, apesar do grande trabalho. Mas ainda vejo um problema.

Por exemplo:

Temos um formulário pegadados.php onde será capturado o estado e tera o frame das respectivas cidades apontando para o formulário cidades.php.

So que este formulário (pegadados.php) é para capturar os campos estado e a cidade selecionada pelo usuário, pois existe um outro form o gravadados.php que gravará os campos preenchidos enviados atraves do method=post do formulario pegadados.php.

Como enviar a cidade ao gravadados.php se esta variavel está num frame?

Espero ter entendido.

Aguardo.

Evandro Felipe.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest AnaoScript

Ae evandro eu não manjo de php mas manjo Java Script entãovou fazer uma base do que você quer e depois você da continuidade qualquer coisa meu e-mail é anaotoscogt@ig.com.br

<html>

<head>

<title></title>

<script language="javascript">

Cidade_1 = new Array("Volta Redonda","Barra Mansa","Resende");

Cidade_2 = new Array("Salvador","Tres poços","Pirai");

Cidade_3 = new Array("TRansilvania","Alemanha","UsA");

function Mudar() {

indice = document.dados.Estado.selectedIndex;

switch (indice) {

case 0:

Local = Cidade_1; break;

case 1:

Local = Cidade_2; break;

case 2:

Local = Cidade_3;

}

for (i=0; i<Local.length; i++) {

document.dados.Local.options.value = Local;

document.dados.Local.options.text = Local;

}

}

</script>

</head>

<body>

<form name="dados">

<select name="Estado" onchange="Mudar();">

<option value="m">America

<option value="t">São Paulo

<option value="n">Rio

</select>

<select name="Local">

<option>

<option>

<option>

</select>

</form>

</body>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0

se você não percebeu o valor já esta definido

o valoor é o mesmo que o texto o camoando value contem o valor e o text o texto cso o valo seja outro deve-se criar outro array como valores e modificar

document.dados.Local.options.value = Local;

por esse

document.dados.Local.options.value = valor;

for (i=0; i<Local.length; i++) {

document.dados.Local.options.value = Local;

document.dados.Local.options.text = Local;

}

até a proxima

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...