allora.....io lo farei cosi
mettiamo caso che tu hai un database con 2 tabelle: la tabella Regioni
Regioni:
----------
Abruzzo
Lazio
Basilicata
Campania
Puglia
Lombardia
......
e la tabella Province
RegioneProvincia
--------------------------
AbruzzoPescara
AbruzzoChieti
LazioRoma
LazioViterbo
PugliaLecce
.......
la prima select la popoli con una normale query (SELECT) sulla tabella regioni.
Codice PHP:
<select type="text" name="regioni" onchange="seleziona_province()" id="regione">
//qui ci metti i vari OPTION della select che andrai a costruire ciclando il risultato della query SELECT sulla tabella regioni, di conseguenza avrai tutte le regioni
</select>
ora devi creare un div sotto/di lato/sopra (insomma dove vuoi tu) con una select vuota
Codice PHP:
<div id='content'> // l'id è importante!!!
<select type="text" name="province"></select>
</div>
ora viene la parte di javascript:
Codice PHP:
//le prime 2 funzioni lasciale cosi, servono per far funzionare AJAX
var myRequest = null;
function CreateXmlHttpReq(handler) {
var xmlhttp = null;
try {
xmlhttp = new XMLHttpRequest();
}
catch(e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}
xmlhttp.onreadystatechange = handler;
return xmlhttp;
}
function myHandler() {
if (myRequest.readyState == 4 && myRequest.status == 200) {
e = document.getElementById("content");
e.innerHTML = myRequest.responseText;
}
}
function seleziona_province() {
var regione = document.getElementById('regione'); //qui si va a memorizzare il nome della regione
myRequest = CreateXmlHttpReq(myHandler);
myRequest.open("GET","seleziona_province.php?regione="+escape(regione),true);
myRequest.send(null);
}
ora il file seleziona_province.php
Codice PHP:
//effettui la connessione al database
$regione = $_GET['regione']; //memorizziamo la regione in una variabile
$query = "SELECT Provincia FROM Province WHERE Regione = '$regione' ORDER BY Provincia ASC";
$result = mysql_query($query);
$html = '<select type="text" name="province">';
while ($row=mysql_fetch_array($result)){
$html = $html.'<option value ="$row['Provincia']">$row['Provincia']</option>';
}
$html = $html.'</select>';
//$html contiene il codice html della seconda select, quella con le province della regione selezionata
echo $html;
FINITO..... dovrebbe funzionare...non l'ho provato e non ho scopiazzato qui e la...è tutto lavoro artigianale....ma dovrebbe andare...fammi sapere