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

Busca Com Estado E Cidade


Naty_Za

Pergunta

Pessoal, sabe aquele esquema de busca que tem 2 caixas, a 1ª com os estados, daí quando você seleciona um estado, a caixa do lado já mostra as cidades daquele determinado estado..

então, eu queria fazer isso...

tipo, no banco criei uma tabela "estados" com os campos:

"id"

"nome"

e outra tabela "cidades" com os campos:

"id"

"id_estado"

"nome"

e já fui escrevendo, separando qual cidade é de qual estado....

agora só preciso linkar no codigo que quando selecionar um estado, só mostre na caixa do lados, as cidades dele...

mas como???????

to postando meu código... me ajudem, por favor!!

Valeuu

<table width="759" border="1" cellpadding="2" cellspacing="0" bordercolor="#E6E6E6">
    <tr valign="top"> 
      <td colspan="2"> </td>
    </tr>
    <tr valign="top"> 
      <td width="751" align="left" valign="top" bgcolor="#F8F8F8"><span class="style10"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Buscar 
        Cadastro</font></strong><br>
        </span> <form name="form1" method="post" action="teste2.php">
          <div align="center"> 
            <p> 
              <input name="palavra" type="text" id="palavra">
              <strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
              <select name="estados" size="1" id="estados">
                <option value="<? echo "$id"; ?>">- Todos os Estados -</option>
                <?php


// conexao com o banco de dados aqui....
$sql = mysql_query("SELECT * FROM estados ORDER BY nome ASC");
while($dados = mysql_fetch_array($sql)) { 
echo' <option value="'.$dados['id'].'">'.$dados['nome'].'</option> ' . "\r\n";
}
?>
              </select>
              </font></strong><strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
              <select name="cidade" size="1" id="cidade">
                <option value="<? echo "$id"; ?>">- Cidade -</option>
                <?php


// conexao com o banco de dados aqui....
$sql = mysql_query("SELECT * FROM cidades ORDER BY nome ASC");
while($dados = mysql_fetch_array($sql)) { 
echo' <option value="'.$dados['id'].'">'.$dados['nome'].'</option> ' . "\r\n";
}
?>
              </select>
              </font></strong><br>
              <input type="submit" name="Submit" value="Buscar">
            </p>
          </div>
        </form></td>
     
    </tr>
    <tr valign="top"> 
      <td colspan="2" align="left" valign="top" bgcolor="#F8F8F8"> 
        <div align="center">
          <? if(!empty($_POST["palavra"])) {
$palavra = str_replace(" ", "%", $_POST["palavra"]); // Altera os espaços adicionando no lugar o simbolo %
$estados = $_POST['estados'];
if (empty($estados)) {
   $qr = "SELECT * FROM cadastros WHERE titulo LIKE '%".$palavra."%' or servicos LIKE '%".$palavra."%' or palavras LIKE '%".$palavra."%' ORDER BY titulo ASC";
} else {
   $qr = "SELECT * FROM cadastros WHERE titulo LIKE '%".$palavra."%' or servicos LIKE '%".$palavra."%' or palavras LIKE '%".$palavra."%'and id_estado = '$estados' ORDER BY titulo ASC";

// definimos para buscar no campo1 e ordenar pelo campo que você quiser.
}

$sql = mysql_query($qr) or die (mysql_error()); // Executa a query no Banco de Dados 
$total = mysql_num_rows($sql); // Conta o total de resultados encontrados 
echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=2>Sua busca retornou <b>$total</b> resultados.</font><br><br>\n"; // mostra quantos resultados retornou e logo depois exibe
while ($dados = mysql_fetch_array($sql)) {
$campo1 = $dados["titulo"];
$campo2 = $dados["servicos"];
$campo3 = $dados["id_cat"];
$campo4 = $dados["cliques"];
$campo5 = $dados["id"];
$campo6 = $dados["http"];
$campo7 = $dados["endereco"];
$campo8 = $dados["email"];
$campo9 = $dados["tel"];
echo"
<font face=Verdana, Arial, Helvetica, sans-serif><strong><font size=1><a href=\"$campo6\" 
target=\"_blank\" >$campo1</strong></a></font><br>
<i>Serviços: $campo2</i><BR>
Endereço: $campo7<BR>
Tel: $campo9<BR>
Email: <a href=mailto:$campo8>$campo8</a><BR>
<BR>
";

} 
} 
?>
        </div></td>
    </tr>
  </table>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
como assim??????

acho que instantaneo.... tipo, selecionou o estado, já mudou as cidades.. daí a pessoa clica no botão buscar e mostra somente os registros daquela cidade!!!

Valeuu

Se você que instantaneo vai ter que usar javascript... ajax... etc, porque o PHP precisa que a página seja enviada ao servidor e isso dá refresh...

Link para o comentário
Compartilhar em outros sites

  • 0

não tem importancia que dê refresh... consegui assim óh:

<table width="759" border="1" cellpadding="2" cellspacing="0" bordercolor="#E6E6E6">
    <tr valign="top"> 
      <td colspan="2"> </td>
    </tr>
    <tr valign="top"> 
      <td width="751" align="left" valign="top" bgcolor="#F8F8F8"><span class="style10"><strong><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Buscar 
        Cadastro</font></strong><br>
        </span> <form name="form1" method="post" action="teste2.php">
          <div align="center"> 
            <p> <strong><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
              <select name="estados" size="1" id="estados" onChange="location.href = '<? echo $_SERVER["PHP_SELF"]; ?>?estado=' + this.value;">
                <option value="<? echo "$id"; ?>">- Todos os Estados -</option>
                <?php
// conexao com o banco de dados aqui....
$sql = mysql_query("SELECT * FROM estados ORDER BY nome ASC");
while($dados = mysql_fetch_array($sql)) {
$sel = ($_GET["estado"] == $dados['id']) ? "selected" : "";   
echo' <option value="' . $dados['id'] . '"' . $sel . '>'.$dados['nome'].'</option> ' . "\r\n";
}
?>
              </select>
              <select name="cidade" size="1" id="cidade">
                <option value="<? echo "$id"; ?>" selected>- Cidades -</option>
                <?php
// conexao com o banco de dados aqui....
$sql = mysql_query("SELECT * FROM cidades WHERE id_estado='" . $_GET["estado"] . "' ORDER BY nome ASC");
while($dados = mysql_fetch_array($sql)) { 
echo' <option value="' . $dados['id'] . '">' . $dados['nome'] . '</option> ' . "\r\n";
}
?>
              </select>
              </font></strong>
              <input name="palavra" type="text" id="palavra">
              <br>
              <input type="submit" name="Submit" value="Buscar">
            </p>
          </div>
        </form></td>
     
    </tr>
    <tr valign="top"> 
      <td colspan="2" align="left" valign="top" bgcolor="#F8F8F8"> 
        <div align="center">
          <? if(!empty($_POST["palavra"])) {
$palavra = str_replace(" ", "%", $_POST["palavra"]); // Altera os espaços adicionando no lugar o simbolo %
$estados = $_POST['estados'];
if (empty($estados)) {
   $qr = "SELECT * FROM cadastros WHERE endereco LIKE '%".$palavra."%' or servicos LIKE '%".$palavra."%' or palavras LIKE '%".$palavra."%' ORDER BY endereco ASC";
} else {
   $qr = "SELECT * FROM cadastros WHERE endereco LIKE '%".$palavra."%' or servicos LIKE '%".$palavra."%' or palavras LIKE '%".$palavra."%'and id_estado = '$estados' ORDER BY endereco ASC";

// definimos para buscar no campo1 e ordenar pelo campo que você quiser.
}

$sql = mysql_query($qr) or die (mysql_error()); // Executa a query no Banco de Dados 
$total = mysql_num_rows($sql); // Conta o total de resultados encontrados 
echo "<font face=Verdana, Arial, Helvetica, sans-serif><font size=2>Sua busca retornou <b>$total</b> resultados.</font><br><br>\n"; // mostra quantos resultados retornou e logo depois exibe
while ($dados = mysql_fetch_array($sql)) {
$campo1 = $dados["titulo"];
$campo2 = $dados["servicos"];
$campo3 = $dados["id_cat"];
$campo4 = $dados["cliques"];
$campo5 = $dados["id"];
$campo6 = $dados["http"];
$campo7 = $dados["endereco"];
$campo8 = $dados["email"];
$campo9 = $dados["tel"];
echo"
<font face=Verdana, Arial, Helvetica, sans-serif><strong><font size=1><a href=\"$campo6\" 
target=\"_blank\" >$campo1</strong></a></font><br>
<i>Serviços: $campo2</i><BR>
Endereço: $campo7<BR>
Tel: $campo9<BR>
Email: <a href=mailto:$campo8>$campo8</a><BR>
<BR>
";

} 
} 
?>
        </div></td>
    </tr>
  </table>

minha dúvida agora é como vou especificar pra buscar só no estado se a pessoa escolher, ou na cidade também....

já criei na minha tabela "cadastros" o campo "id_cidade", igual já tem a "id_estado"

mas como fazer pra que se a pessoa escrever algo pra buscar, colocar no estado, e na cidade escolhida, buscar só os registros daquela cidade.... ou se ela não escolher a cidade, buscar só pelo estado!!!

como fazer isso???

valeuu

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