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

Onchange Com Diversos Selects


Guest Ruan Gomes

Pergunta

Guest Ruan Gomes

Bem pessoal estou precisando muito de uma ajuda, não tenho muita experiencia em javascript, bem tenho a seguinte situação,

tenho um campo select com uma lista de estados

São Paulo

Bahia

Minas Gerais

Tenho uma lista de municipios dos respectivos estados

são Paulo, Campinas, Barretos, Araçatuba

Salvador , Ilhéus, Canavieiras, Araças

Belo Horizonte, Varginha, Minas Novas, Nepomuceno

Tenho uma lista de restaurantes nos respectivos municipios também

são Paulo, Restaurante A, Restaurante B, Restaurante C

Salvador, Restaurante AB, Restaurante BC, Retaurante CB

Belo Horizonte, Restaurante ABC, Restaurante BBC, Retaurante CAB

Tenho um formulario que quando o usuario escolher o estado, automaticamente so ira aparecer os municipios do respectivo estado,

Escolhendo o estado de São Paulo iria aparecer os municipios são Paulo, Campinas, Barretos, Araçatuba

Agora dependendo do municipios que o usuario escolher iria aparecer os restaurantes que tem em cada municipios

Escolhendo o municipio de São Paulo, iria aparecer os restaurantes são Paulo, Restaurante A, Restaurante B, Restaurante C

Bem acho que está bem explicado,

Fiz da seguinte forma:

<?php 

"<select name=\"qual_estado\"  onChange=\"form.action='meuformulario.php'; form.submit();\">";
$consulta_estado = mysql_query("Select * from estados ORDER BY estado");

while ($dados3 = mysql_fetch_array($consulta_estado))
         {
       $estado = $dados3["estado"];
       $cod_estado = $dados3["cod_estado"];

      if ($cod_estado == $qual_estado)
          {
           echo "<option value=\"$cod_estado\" selected> $estado</option>"; 
           }
           else 
           {
           echo "<option value=\"$cod_estado\"> $estado</option>"; 
            }
                 }
echo "</select";


//------------------------------------------------------------------------------

"<select name=\"qual_municipio\"  onChange=\"form.action='meuformulario.php'; form.submit();\">";
$consulta_municipio = mysql_query("Select * from municipios WHERE estados = '$qual_estados' ORDER BY municipio");

while ($dados4 = mysql_fetch_array($consulta_municipio))
         {
       $estado = $dados4["estado"];
       $cod_estado = $dados4["cod_estado"];

      if ($cod_municipio == $qual_municipio)
          {
           echo "<option value=\"$cod_municipio\" selected> $municipio</option>"; 
           }
           else 
           {
           echo "<option value=\"$cod_municipio\"> $municipio</option>"; 
            }
          }
echo "</select";


//--------------------------------------------------------------------------------------

"<select name=\"qual_restaurante\"  onChange=\"form.action='meuformulario.php'; form.submit();\">";
$consulta_restaurantes = mysql_query("Select * from restaurantes WHERE municipios = qual_municipio ORDER BY restaurante");

while ($dados5 = mysql_fetch_array($consulta_restaurantes))
         {
       $restaurante = $dados5["restaurante"];
       $cod_restaurante = $dados5["cod_restaurante"];
       echo "<option value=\"$cod_restaurante\"> $restaurante</option>"; 
        }
echo "</select";

Bem pessoal, estou utilizando PHP, porem a grande duvida não é relacionada ao php, a duvida é a seguinte

quando o usuario escolhe o o estado, o campo select dos municipios muda sem problemas mostrando apenas os municipios do respectivo estado, porem o select dos restaurantes ele não muda,

Li sobre o comando onchange, percebi que quando mudo o campo select do estado, a variavel qual_municipio ela não se atualiza, ela fica nula, somente quando eu mudo o municipio ai sim ele aparece os respectivos restaurantes, porem gostaria que quando eu clica-se no estado aparece-se o primeiro municipio e os restaurantes do primeiro municipio selecionado, e isso não acontece.

Peço desculpas se não fui muito claro, gostaria muito da ajuda de vocês, vou bem experiente em Linux, caso alguém possa me ajudar com esse problema ou ate mesmo alguém que não saiba a resposta e precisar de alguma força pode contar comigo,

Grande abraço a todos da comunidade.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Então resolve com o próprio PHP, tipo, quando você for montar o select dos munícipios guarda o valor do municipio que vai aparecer como selecionado (no seu caso acho que vai ser simplesmente o que vier primeiro do BD) em uma variável, então na hora de definir os restaurantes faz assim:

if (isset($_GET['variavel_do_estado']) AND !isset($_GET['variavel_dos_municipios']) OR empty($_GET['variavel_dos_municipios'])){
/*Aqui vai cair quando a variavel que guarda o valor dos municipios estiver vazia ou não existir e a variável do estado estiver preenchida
Aqui você deve usar a tal variável que eu disse para guardar o valor da cidade que vai aparecer como selecionada quando o cara escolher o estado
*/
$consulta_restaurantes = mysql_query("Select * from restaurantes WHERE municipios = '$variavel_tal' ORDER BY restaurante");
else{
/*Aqui é quando o onchange criar criar um valor para a cidade...então simplesmente usa a query que você criou...*/
$consulta_restaurantes = mysql_query("Select * from restaurantes WHERE municipios = qual_municipio ORDER BY restaurante");
}

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...