Naty_Za 0 Denunciar post Postado Março 8, 2007 Pessoal, sabe aquele esquema de busca q tem 2 caixas, a 1ª com os estados, daí qdo 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 q 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 exibewhile ($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> Compartilhar este post Link para o post Compartilhar em outros sites
Pedro Menoncin 0 Denunciar post Postado Março 9, 2007 Olá amiga,eu conheço uma maneira um pouco simples para fazer o que você quer:- faça a 1ª caixa com os estados. Nesta caixa terá um "onexit" ou um "onclick" que vai dar um reload na pagina, enviando o codigo do estado pelo outro form, onde na segunda caixa (cidades) irá buscar pelo select atraves do codigo do estado que o usuario escolheu na caixa anterior! :)sem dar reload eu to atras tbm! :)Espero ter ajudado! :)Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Naty_Za 0 Denunciar post Postado Março 12, 2007 Oi Pedro... mas como ficaria o código se fizer assim????sou iniciante em PHP, e ñ sei programar quase nada!!!Se puder me ajudar...Valeuuu Compartilhar este post Link para o post Compartilhar em outros sites
Naty_Za 0 Denunciar post Postado Março 12, 2007 óh consegui fazer.... fiz atualizando a página toda com um "onChange" no "select.. ficou assim: <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 exibewhile ($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> mas agora surge um outro probleminha.. meu sistema de busca tá assim: a caixa para escolher o estado, daí do lado, escolhe a cidade, depois tem o campo de escrever o que quer buscar.. só que tem algumas formas que a pesquisa ñ completa... volta 0.. eu queria que funcionasse a busca de todas as formas... tipo assim: se a pessoa escolher só o estado e ñ escrever nada, e clicar em buscar, queria voltasse com todos os resultados daquele estado... se escolher o estado e a cidade sem escrever nada, que voltasse com todos os resultados daquela cidade.. se só escrever o que quer buscar, sem selecionar nenhum estado e cidade, que volte com todos os resultados daquilo que ela buscou, de todos os estados e cidades, afinal, ela ñ especificou nenhum!! se escrever o que quer buscar, e selecionar o estado e cidade, que volte o resultado do que buscou na cidade que buscou.. é só funcionar certinho.... eu sei que eu teria que testar as variáveis (if/else) para ver quais estão vazias e no final montar a query com o que vir... mas como??? sei na teoria, mas ñ consigo colocar na prática.. já postei o código... me ajudem, por favor!!! valeuuu Compartilhar este post Link para o post Compartilhar em outros sites
PauloFlash 0 Denunciar post Postado Março 13, 2007 use if pra fazer isso, não vi o código seu mais a logica é:if ($cidade_escolhida == 0){ echo $mostra_estado_todo;}essa é a lógica, agora você usa do jeito que você está fazendo Compartilhar este post Link para o post Compartilhar em outros sites
rabibi 0 Denunciar post Postado Novembro 20, 2009 use if pra fazer isso, não vi o código seu mais a logica é: if ($cidade_escolhida == 0){ echo $mostra_estado_todo; } essa é a lógica, agora você usa do jeito que você está fazendo estou com esta mesma dúvida... espero que alguém nos ajude. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Novembro 26, 2009 rabibi, este tópico é de 2007. Se tiver uma dúvida, crie um novo tópico específico para ela. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites