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

Vários Selects Dependentes


Guest --Guilherme --

Pergunta

Guest --Guilherme --

Estou com um problema e queria a ajuda de vocês. Eu tenho uma página em que tenho quatro selects: Região, Estado, Cidade e Bairro.

Preciso que o select Cidade seja carregado após Estado ter sido escolhido sendo diferente de vazio. São selects dependentes (O sucessor depende da escolha do antecessor). Como faço?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Guest --Guilherme --

Gente, estou quase resolvendo, só falta um detalhe. Da forma como estou fazendo, ao invés da página colocar o selected quando dá o refresh, ela está adcionando uma opção ao select. Então se o usuário escolhe o estado AM essa opção é duplicada ao invés de ser dado o select na opção que já existe. Meu código está assim:

<BODY bgcolor='#EEEEEE'>
<?php
$select = " selected ";
if($_SERVER['REQUEST_METHOD']=="POST")
{
    $estado = $_POST['estado'];
    $cidade = $_POST['cidade'];
}
?>
<P align='center'><font face='Verdana' size=3 color="#969696">Aluguel e venda de imóveis</font></P>

<form name="formulario" action="index.php" method="post">
<table border=1 cellpading=0 cellspacing=0 width='50%' bordercolor='#FFFFFF' align="center">
<tr><td align='center' colspan=2><font face='Verdana' size=3 color='#919191'>Busca personalizada</font></td></tr>

<tr height="35"><td><B><center><font face='Verdana' size=2>País:</font></center></B></td><td><center><select name="pais"><option value="Brasil">Brasil</option></center></td></tr>

<tr height="35"><td><B><center><font face='Verdana' size=2>Estado:</font></center></B></td><td><center>
<select name="estado" onChange="java script:document.formulario.submit();">
<option value="">Selecione o Estado</option>
<?php
$con = mysql_connect("localhost","root","");
$db = mysql_select_db("imoveis");
$sql = mysql_query("SELECT DISTINCT uf FROM cidades");
$linhas = mysql_num_rows($sql);
for($i=0;$i<$linhas;$i++)
{
    $uf = mysql_result($sql,$i,"uf");
    echo "<option value='".$uf."'>".strtoupper($uf)."</option>";
}
    if($estado!="")
        echo "<option value='".$estado."'".$select.">".strtoupper($estado)."</option>";
?>
</select>
</center></td></tr>

<tr height="35"><td><B><center><font face='Verdana' size=2>Cidade:</font></center></B></td><td><center>
<select name='cidade' onChange="java script:document.formulario.submit();">
<option value="">Selecione a Cidade</option>
<?php
if($_SERVER['REQUEST_METHOD']=="POST" && $estado!="")
{
    $con = mysql_connect("localhost","root","");
    $db = mysql_select_db("imoveis");
    $sql = mysql_query("SELECT DISTINCT municipio FROM cidades WHERE uf = '$estado'");
    $linhas = mysql_num_rows($sql);
    for($i=0;$i<$linhas;$i++)
    {
        $municipio = mysql_result($sql,$i,"municipio");
            echo "<option value='".$municipio."'>".strtoupper($municipio)."</option>";
    }
    if($cidade!="")
            echo "<option value='".$cidade."' selected>".strtoupper($cidade)."</option>";
}
?>
</select>
</center></td></tr>

<tr height='35'><td><B><center><font face='Verdana' size=2>Bairro:</font></center></B></td><td><center>
<select name='bairro'>
<option value="">Selecione o Bairro</option>
<?php  ?>
</select>
</center></td></tr>
</table>
</form>
</BODY>

Como faço para apenas escrever selected ao invés de duplicar a opção?

Link para o comentário
Compartilhar em outros sites

  • 0

Ele está duplicando porque você está mandando imprimir 2 vezes...

echo "<option value='".$uf."'>".strtoupper($uf)."</option>";

}

if($estado!="")

echo "<option value='".$estado."'".$select.">".strtoupper($estado)."</option>";

Manda tudo direto em um option...

<option value='<?php echo $uf;?>' <?php if($estado == $uf){echo "selected";}else{}?>><?php echo strtoupper($uf);?></option>";

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Guilherme --

Preciso de outra ajuda pessoal. Consegui um BD com uma tabela relacionando estados e cidades. Alguém sabe onde conseguir uma tabela com cidades e bairros?

Link para o comentário
Compartilhar em outros sites

  • 0

Já tentou nos correios? Eu to alterando um site de um cliente, ele tem esse trecos (estados->cidades->bairros->ruas) e se não me engano quem forneceu foram os correios (tem uns probleminhas, mas no geral funciona)...

Link para o comentário
Compartilhar em outros sites

  • 0

Eu não sei... mas deve ser que nem pedir a tabela de preços (sedex encomenda normal), o cara vai lá no site dos correios tem os endereços/e-mails/telefones dos representantes, dai manda e-mail pedindo e uns dias depois eles mandam por e-mail os arquivos (pelo menos as tabelas são de graça)...

Se bem que se você procurar isso na web provavelmente alguém já tenha postado por ai...

Link para o comentário
Compartilhar em outros sites

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...