Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 poderia me ajudar?
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>
<script src="ajaxInit.js" language="javascript" type="text/javascript"></script>
<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", "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;
?>Carregando comentários...