Buonasera, ho trovato del codice per realizzare delle select concatenate al seguente link : http://www.yourinspirationweb.com/20...-php-e-jquery/

Il codice originario è questo

index.php

codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>


<head>
	<meta http-equiv="content-type" content="text/html charset=utf-8">
	<meta name="author" content="Tarchini Maurizio">


	<script type="text/javascript" src="jquery-1.3.2.js"></script>


	<link href="screen.css" rel="stylesheet" type="text/css" />
	<title>Regioni, province, comuni | Your Inspiration Web</title>
	
	<script type="text/javascript">
	$(document).ready(function(){


		var scegli = '<option value="0">Scegli...</option>';
		var attendere = '<option value="0">Attendere...</option>';
		
		$("select#province").html(scegli);
		$("select#province").attr("disabled", "disabled");
		$("select#comuni").html(scegli);
		$("select#comuni").attr("disabled", "disabled");
		
		
		$("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");
			
			$.post("select.php", {id_reg:regione}, function(data){
				$("select#province").removeAttr("disabled"); 
				$("select#province").html(data);	
			});
		});	
		
		$("select#province").change(function(){
			$("select#comuni").attr("disabled", "disabled");
			$("select#comuni").html(attendere);
			var provincia = $("select#province option:selected").attr('value');
			$.post("select.php", {id_pro:provincia}, function(data){
				$("select#comuni").removeAttr("disabled");
				$("select#comuni").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>
	
		<form action="?" id="myform">
			Seleziona una regione:<br />
			<select id="regioni">
				<?php echo $opt->ShowRegioni(); ?>
			</select>
			<br /><br />
		
			Seleziona una provincia:<br />
			<select id="province">
			<option>Scegli...</option>
			</select>
			<br /><br />
		
			Seleziona un comune:<br />
			<select id="comuni">
			<option>Scegli...</option>
			</select>
			
		</div>
	</form>




</body>
</html>
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['id_reg'] . '">' . utf8_encode($row['nome_regione']) . '</option>';
				}
				
			return $regioni;
		}
		
		public function ShowProvince()
		{
			$sql = "SELECT * FROM province WHERE id_reg=$_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['id_pro'] . '">' . utf8_encode($row['nome_provincia']) . '</option>';
				}
				
			return $province;
		}
		
		public function ShowComuni()
		{
			$sql = "SELECT * FROM comuni WHERE id_pro=$_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['id_com'] . '">' . $row['cap'] . ' - ' . utf8_encode($row['comune']) . '</option>';
				}
				
			return $comuni;
		}
}


?>
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;
}




?>
ho provato ad adattarlo un po' per farlo lavorare con il mio database, ma non sono riuscito, quindi ho provato a modificare il nome del campo e a vedere se funziona lo stesso, ma ancora nulla. Posto qui anche il codice modificato. Sapreste dirmi se devo effettuare delle ulteriori modifiche per farlo funzionare?

Posto il codice nella forma in cui l'ho modificato :

index.php

codice:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>


<head>
	<meta http-equiv="content-type" content="text/html charset=utf-8">
	<meta name="author" content="Tarchini Maurizio">


	<script type="text/javascript" src="jquery-1.3.2.js"></script>


	<link href="screen.css" rel="stylesheet" type="text/css" />
	<title>Regioni, province, comuni | Your Inspiration Web</title>
	
	<script type="text/javascript">
	$(document).ready(function(){


		var scegli = '<option value="0">Scegli...</option>';
		var attendere = '<option value="0">Attendere...</option>';
		
		$("select#province").html(scegli);
		$("select#province").attr("disabled", "disabled");
		$("select#comuni").html(scegli);
		$("select#comuni").attr("disabled", "disabled");
		
		
		$("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");
			
			$.post("selectVecchio.php", {idregione:regione}, function(data){
				$("select#province").removeAttr("disabled"); 
				$("select#province").html(data);	
			});
		});	
		
		$("select#province").change(function(){
			$("select#comuni").attr("disabled", "disabled");
			$("select#comuni").html(attendere);
			var provincia = $("select#province option:selected").attr('value');
			$.post("selectVecchio.php", {idprovincia:provincia}, function(data){
				$("select#comuni").removeAttr("disabled");
				$("select#comuni").html(data);	
			});
		});	
	});
	
	</script>
</head>
<?php
include_once 'select.classVecchio.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>
	
		<form action="?" id="myform">
			Seleziona una regione:<br />
			<select id="regioni">
				<?php echo $opt->ShowRegioni(); ?>
			</select>
			<br /><br />
		
			Seleziona una provincia:<br />
			<select id="province">
			<option>Scegli...</option>
			</select>
			<br /><br />
		
			Seleziona un comune:<br />
			<select id="comuni">
			<option>Scegli...</option>
			</select>
			
		</div>
	</form>




</body>
</html>
select.php

codice:
<?php


include_once 'select.classVecchio.php';
$opt = new SelectList();


if(isset($_POST['idprovincia']))
{
	echo $opt->ShowProvince();
	die;
}


if(isset($_POST['idregione']))
{
	echo $opt->ShowComuni();
	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['idregione'] . '">' . utf8_encode($row['nome_regione']) . '</option>';
				}
				
			return $regioni;
		}
		
		public function ShowProvince()
		{
			$sql = "SELECT * FROM province WHERE idregione=".$_POST[idregione];
			$res = mysql_query($sql,$this->conn);
			$province = '<option value="0">scegli...</option>';
			
				while($row = mysql_fetch_array($res))
				{
					$province .= '<option value="' . $row['idprovincia'] . '">' . utf8_encode($row['nome_provincia']) . '</option>';
				}
				
			return $province;
		}
		
		public function ShowComuni()
		{
			$sql = "SELECT * FROM comuni WHERE idprovincia=".$_POST[idprovincia];
			$res = mysql_query($sql,$this->conn);
			$comuni = '<option value="0">scegli...</option>';
			
				while($row = mysql_fetch_array($res))
				{
					$comuni .= '<option value="' . $row['idComune'] . '">' . $row['cap'] . ' - ' . utf8_encode($row['comune']) . '</option>';
				}
				
			return $comuni;
		}
}


?>
La versione originale funziona correttamente, posto anche entrambe le versioni delle tabelle del database.

database originario :

codice:
CREATE TABLE `comuni` (
  `id_com` int(6) unsigned NOT NULL auto_increment,
  `id_pro` int(4) unsigned NOT NULL,
  `cap` int(8) unsigned NOT NULL,
  `comune` varchar(200) character set latin1 NOT NULL,
  PRIMARY KEY  (`id_com`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8101 ;

CREATE TABLE `province` (
  `id_pro` int(4) unsigned NOT NULL auto_increment,
  `id_reg` int(3) unsigned NOT NULL,
  `nome_provincia` varchar(200) character set latin1 NOT NULL,
  PRIMARY KEY  (`id_pro`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=111 ;

CREATE TABLE `regioni` (
  `id_reg` int(3) unsigned NOT NULL auto_increment,
  `nome_regione` varchar(200) character set latin1 NOT NULL,
  PRIMARY KEY  (`id_reg`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
database da me modificato :

codice:
CREATE TABLE IF NOT EXISTS `comuni` (
  `idComune` int(6) unsigned NOT NULL AUTO_INCREMENT,
  `idprovincia` int(4) unsigned NOT NULL,
  `cap` int(8) unsigned NOT NULL,
  `comune` varchar(200) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`idComune`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8101 ;

CREATE TABLE IF NOT EXISTS `province` (
  `idprovincia` int(4) unsigned NOT NULL AUTO_INCREMENT,
  `idRegione` int(3) unsigned NOT NULL,
  `nome_provincia` varchar(200) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`idprovincia`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=111 ;


CREATE TABLE IF NOT EXISTS `regioni` (
  `idregione` int(3) unsigned NOT NULL AUTO_INCREMENT,
  `nome_regione` varchar(200) CHARACTER SET latin1 NOT NULL,
  PRIMARY KEY (`idregione`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;