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

Menu de lista dinâmico: estado x cidade


Levi_gns

Pergunta

Olá pessoal, preciso de um menu de lista dinâmico onde ao selecionar o estado no primeiro menu de lista, apareçam as cidades correspondentes no segundo menu de lista.

Após várias tentativas achei o código abaixo em algum lugar na net, mas ainda estou com um probleminha:

no arquivo "cidades.php" preciso colocar dentro da array as cidades (que estão na tabela 'cidade') correspondentes ao estado selecionado.

Alguém saberia resolver esse meu dilema?

Código:

ajaxInit.js

function ajaxInit() {
   var xmlhttp;
      try {      
          xmlhttp = new XMLHttpRequest();   
      } catch(ee) {     
          try {         
              xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");      
          } catch(e) {         
              try {            
                  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");         
              } catch(E) {            
                  xmlhttp = false;         
              }      
          }   
    }   
    return xmlhttp;
}
index.php
<html>
<head>
<title>Teste AJAX</title>
&lt;script src="ajaxInit.js" language="javascript" type="text/javascript"></script>
&lt;script>
function getCidades() {   
    sEstado = document.getElementById("estado").value;
    ajax = ajaxInit();
    if (ajax) {
        ajax.open("GET", "cidades.php?estado=" + sEstado, true);
        ajax.onreadystatechange = function () {         
            if (ajax.readyState == 4) { 
                if (ajax.status == 200) { 
                    cidades.innerHTML = ajax.responseText;
                } else {
                    alert(ajax.statusText);
                }
            }
        }
        ajax.send(null);
    }
}
</script>

</head>
<body onload="getCidades()">
<form>   
Estado:   
<?php 
mysql_connect ('localhost', 'root', '') or die (mysql_error());
mysql_select_db ('classificados') or die (mysql_error());
$sql = "select * from estado"; 
$result = mysql_query ($sql);
?>
<select name="estado" onchange="if(this.options[this.selectedIndex].value){ getCidades() }" >
    <?php while ($reg = mysql_fetch_array ($result)){ ?>
    <option value= <? echo $reg['codest']?>> <? echo $reg['estado']?> </option>  
    <?php 
    }
    mysql_close();
    ?>
</select>
<div id="cidades"></div>
</form>
</body>
</html>
cidades.php
<?php   
$aCidades = array(      
"1" => array("Duque de caxias", "Del castilho", "Queimados",),  // aqui preciso que apareçam as cidades da tabela 'cidade'
"2" => array("Itaquera","Diadema",),
); 

$saida = "Cidade: <select name='cidade'>\n";      
foreach ($aCidades[$_GET['estado']] as $sCidade) {         
$saida .= "<option value='{$sCidade}'>{$sCidade}</option>\n";         
}
$saida .= "</select>"; 
print $saida;
?>

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

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