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;
}
Pergunta
Levi_gns
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> <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", "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.