Ciao a tutti posto la soluzione a cui sono arrivato, funziona, ma non so se sia corretta al 100%.
Ho preso il database su un sito e parte del codice da un altro sito.
Il db tra quelli trovati mi sembra il fatto meglio con 4 tabelle e non 3 come molti. Regioni Province Comuni e Cap purtroppo sembrano mancare dei cap.
Premetto che funziona, ma non so se sia corretto al 100%.
----------------------------
SELECT.php
--------------------------------------------------------------codice:<?php include_once 'select.class.php'; $opt = new SelectList(); if(isset($_POST['id_reg'])) { echo $opt->ShowProvince(); die; } if(isset($_POST['id_pro'])) { echo $opt->ShowComuni(); die; } if(isset($_POST['id_com'])) { echo $opt->ShowCap(); die; } if(isset($_POST['id_reg'])) { echo $opt->ProvinceDEST(); die; } if(isset($_POST['id_pro'])) { echo $opt->ComuniDEST(); die; } if(isset($_POST['id_com'])) { echo $opt->CapDEST(); die; } ?>
SELECT.CLASS.php
------------------------------------------------------------------------------------------codice:<?php class SelectList { protected $conn; public function __construct() { $this->DbConnect(); } protected function DbConnect() { include "db_config.php"; $this->conn = mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database"); mysql_select_db($db,$this->conn) OR die("Impossibile selezionare il database $db"); return TRUE; } public function ShowRegioni() { $sql = "SELECT * FROM regioni"; $res = mysql_query($sql,$this->conn); $regioni = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $regioni .= '<option value="' . $row['cod_regione'] . '">' . utf8_encode($row['regione']) . '</option>'; } return $regioni; } public function ShowProvince() { $sql = "SELECT * FROM province WHERE cod_regione=$_POST[id_reg]"; $res = mysql_query($sql,$this->conn); $province = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $province .= '<option value="' . $row['cod_provincia'] . '">' . utf8_encode($row['provincia']) . '</option>'; } return $province; } public function ShowComuni() { $sql = "SELECT * FROM comuni WHERE cod_provincia=$_POST[id_pro]"; $res = mysql_query($sql,$this->conn); $comuni = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $comuni .= '<option value="' . $row['comune'] . '">' . utf8_encode($row['comune']) . '</option>'; } return $comuni; } //CAP capiiiiii public function ShowCap() { $sql = "SELECT * FROM cap WHERE comune='$_POST[id_com]'"; $res = mysql_query($sql,$this->conn); $cap = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $cap .= '<option value="' . $row['cap'] . '">' . utf8_encode($row['cap']) . '</option>'; } return $cap; } // E DUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE public function RegioniDEST() { $sql = "SELECT * FROM regioni"; $res = mysql_query($sql,$this->conn); $regdes = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $regdes .= '<option value="' . $row['cod_regione'] . '">' . utf8_encode($row['regione']) . '</option>'; } return $regdes; } public function ProvinceDEST() { $sql = "SELECT * FROM province WHERE cod_regione=$_POST[id_reg]"; $res = mysql_query($sql,$this->conn); $prodes = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $prodes .= '<option value="' . $row['cod_provincia'] . '">' . utf8_encode($row['provincia']) . '</option>'; } return $prodes; } public function ComuniDEST() { $sql = "SELECT * FROM comuni WHERE cod_provincia=$_POST[id_pro]"; $res = mysql_query($sql,$this->conn); $comdes = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $comdes .= '<option value="' . $row['comune'] . '">' . utf8_encode($row['comune']) . '</option>'; } return $comdes; } //Cap dest public function CapDEST() { $sql = "SELECT * FROM cap WHERE comune='$_POST[id_com]'"; $res = mysql_query($sql,$this->conn); $capdes = '<option value="0">scegli...</option>'; while($row = mysql_fetch_array($res)) { $capdes .= '<option value="' . $row['cap'] . '">' . utf8_encode($row['cap']) . '</option>'; } return $capdes; } } ?>
INDEX.php
codice:<html> <head> <title>Regioni, province, comuni </title> <script type="text/javascript"> $(document).ready(function(){ var scegli = '<option value="0">Scegli...</option>'; var attendere = '<option value="0">Attendere...</option>'; //uno $("select#province").html(scegli); $("select#province").attr("disabled", "disabled"); $("select#comuni").html(scegli); $("select#comuni").attr("disabled", "disabled"); //PROVA CAP $("select#cap").html(scegli); $("select#cap").attr("disabled", "disabled"); // CAP DEST $("select#capdes").html(scegli); $("select#capdes").attr("disabled", "disabled"); //e DUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE $("select#prodes").html(scegli); $("select#prodes").attr("disabled", "disabled"); $("select#comdes").html(scegli); $("select#comdes").attr("disabled", "disabled"); //uno $("select#regioni").change(function(){ var regione = $("select#regioni option:selected").attr('value'); $("select#province").html(attendere); $("select#province").attr("disabled", "disabled"); $("select#comuni").html(scegli); $("select#comuni").attr("disabled", "disabled"); //aggiunta per il cap $("select#cap").html(scegli); $("select#cap").attr("disabled", "disabled"); $.post("select.php", {id_reg:regione}, function(data){ $("select#province").removeAttr("disabled"); $("select#province").html(data); }); }); //da correggere per province $("select#province").change(function(){ var provincia = $("select#province option:selected").attr('value'); $("select#comuni").html(attendere); $("select#comuni").attr("disabled", "disabled"); $("select#cap").html(scegli); $("select#cap").attr("disabled", "disabled"); $.post("select.php", {id_pro:provincia}, function(data){ $("select#comuni").removeAttr("disabled"); $("select#comuni").html(data); }); }); //da corregere per il cap $("select#comuni").change(function(){ $("select#cap").attr("disabled", "disabled"); $("select#cap").html(attendere); var comune = $("select#comuni option:selected").attr('value'); $.post("select.php", {id_com:comune}, function(data){ $("select#cap").removeAttr("disabled"); $("select#cap").html(data); }); }); //Destinatario $("select#regdes").change(function(){ var regione = $("select#regdes option:selected").attr('value'); $("select#prodes").html(attendere); $("select#prodes").attr("disabled", "disabled"); $("select#comdes").html(scegli); $("select#comdes").attr("disabled", "disabled"); $.post("select.php", {id_reg:regione}, function(data){ $("select#prodes").removeAttr("disabled"); $("select#prodes").html(data); }); }); //da correggere per province destinatario $("select#prodes").change(function(){ var provincia = $("select#prodes option:selected").attr('value'); $("select#comdes").html(attendere); $("select#comdes").attr("disabled", "disabled"); $("select#capdes").html(scegli); $("select#capdes").attr("disabled", "disabled"); $.post("select.php", {id_pro:provincia}, function(data){ $("select#comdes").removeAttr("disabled"); $("select#comdes").html(data); }); }); //da corregere per il cap destinatario $("select#comdes").change(function(){ $("select#capdes").attr("disabled", "disabled"); $("select#capdes").html(attendere); var comune = $("select#comdes option:selected").attr('value'); $.post("select.php", {id_com:comune}, function(data){ $("select#capdes").removeAttr("disabled"); $("select#capdes").html(data); }); }); }); </script> </head> <?php include_once 'select.class.php'; $opt = new SelectList(); ?> <body> <div id="container"> <h1>La cascata regioni - province - comuni</h1> <h2>Seleziona una regione e nella select successiva compariranno le province di quella regione</h2> <h3>Selezionando una provincia, nella select successiva compariranno i comuni di quella provincia</h3> Seleziona una regione: <select id="regioni"> <?php echo $opt->ShowRegioni(); ?> </select> Seleziona una provincia: <select id="province"> <option>Scegli...</option> </select> Seleziona un comune: <select id="comuni"> <option>Scegli...</option> </select> Seleziona cap: <select id="cap"> <option>Scegli...</option> </select> <h3><center>DESTINATARIO</center></h3> <select id="regdes"> <?php echo $opt->RegioniDEST(); ?> </select> Seleziona una provincia: <select id="prodes"> <option>Scegli...</option> </select> Seleziona un comune: <select id="comdes"> <option>Scegli...</option> </select> Seleziona cap: <select id="capdes"> <option>Scegli...</option> </select> </div> </body> </html>

Rispondi quotando