ciao, io ho trovato questo codice su internet, che funziona e si può adattare facilmente
Index
[PHP]<!DOCTYPE html>
<html>
<head>
<title>Comuni italiani</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="jquery-latest.min.js" type="text/javascript"></script>
<style type="text/css">
div.ricerca {
line-height: 34px;
}
div.ricerca span {
display: inline-block;
width: 110px;
text-align: right;
padding-right: 4px;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
comuni();
$("select").change(function(){
comuni();
})
})
function comuni() {
$.ajax({
type: "POST",
url: "comuni.php",
data: $("#ricerca").serialize(),
success: function(response){
eval(response);
}
});
}
</script>
</head>
<body>
<div class="ricerca">
<form id="ricerca">
<span>Regione :</span>
<select name="regione">
<option value=""></option>
</select><br/>
<span>Provincia :</span>
<select name="provincia">
<option value=""></option>
</select><br/>
<span>Comune :</span>
<select name="comune">
<option value=""></option>
</select>
</form>
</div>
</body>
</html>[/PHP]
Comuni.php
[PHP]<?php
// recupero vaolori delle select
$regione = $_REQUEST['regione'];
$provincia = $_REQUEST['provincia'];
$comune = $_REQUEST['comune'];
// mi connetto al database
$sql = new mysqli("localhost", "root", "", "database");
// estraggo tutte le regioni
$query = "SELECT * FROM regioni";
$result = $sql->query($query);
// svuoto la select regione
echo "$('select[name="regione"]').empty();";
// aggiungo una option vuota
echo "$('select[name="regione"]').append('<option value=""></option>');";
// ciclo i risultati della query
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
// imposto il selected sull'eventuale regione scelta
$selected = "";
if ($row['idRegione'] == $regione) {
$selected = "selected="selected"";
}
// popolo la select
echo "$('select[name="regione"]').append('<option $selected value="" . $row['idRegione'] . "">" . addslashes($row['nomeRegione']) . "</option>');";
}
// se è stata scelta una regione
if (!empty($regione)) {
// estraggo le province della regione scelta
$query = "SELECT * FROM province WHERE idRegione ='$regione'";
$result = $sql->query($query);
// svuoto la select provincia
echo "$('select[name="provincia"]').empty();";
// aggiungo una option vuota
echo "$('select[name="provincia"]').append('<option value=""></option>');";
// ciclo i risultati della query
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
// imposto il selected sull'eventuale provincia scelta
$selected = "";
if ($row['siglaProvincia'] == $provincia) {
$selected = "selected="selected"";
}
// popolo la select
echo "$('select[name="provincia"]').append('<option $selected value="" . $row['siglaProvincia'] . "">" . addslashes($row['nomeProvincia']) . "</option>');";
}
}
// se è stata scelta una provincia
if (!empty($provincia)) {
// estraggo i comuni della provincia scelta
$query = "SELECT * FROM comuni WHERE provincia ='$provincia'";
$result = $sql->query($query);
// svuoto la select comune
echo "$('select[name="comune"]').empty();";
// aggiungo una option vuota
echo "$('select[name="comune"]').append('<option value=""></option>');";
// ciclo i risultati della query
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
// imposto il selected sull'eventuale comune scelto
$selected = "";
if ($row['Istat'] == $comune) {
$selected = "selected="selected"";
}
// popolo la select
echo "$('select[name="comune"]').append('<option $selected value="" . $row['Istat'] . "">" . utf8_encode(addslashes($row['Comune'])) . "</option>');";
}
}
?>
[/PHP]
non so se puo aiutarti