Buonasera, sto diventando matto... Sono partito dallo script classico di province regioni comuni.
Mi occorre modificarlo avendo solamente due select concatenate, in una i destinatari e nella seconda eventuali destinazioni.
La tabella destinatari:
id_destinatario
ragione sociale
La tabella destinazioni:
id_destination
id_destinatario
indirizzo
Ho provato modificando lo script e ottengo i seguenti file:
Index:
Pagina Select.php:
Pagina select.class.php:
Come potete vedere ho sostituito le cose che mi servivano ignorando i nomi e ignorando la terza select.
La prima select funziona bene (vedo la lista) la seconda appena clicco, si ferma su attendere... e in console leggo:
(index):32 Uncaught ReferenceError: destinatari is not defined
at HTMLSelectElement.<anonymous> ((index):32)
at HTMLSelectElement.handle (jquery-1.3.2.js:2693)
at HTMLSelectElement.<anonymous> (jquery-1.3.2.js:2468)
Non capisco...
Grazie a chi volesse aiutarmi.
Mi occorre modificarlo avendo solamente due select concatenate, in una i destinatari e nella seconda eventuali destinazioni.
La tabella destinatari:
id_destinatario
ragione sociale
La tabella destinazioni:
id_destination
id_destinatario
indirizzo
Ho provato modificando lo script e ottengo i seguenti file:
Index:
HTML:
<!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_destinatario:destinatari}, 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>
Pagina Select.php:
PHP:
<?php
include_once 'select.class.php';
$opt = new SelectList();
if(isset($_POST['id_destinatario']))
{
echo $opt->ShowProvince();
die;
}
if(isset($_POST['id_pro']))
{
echo $opt->ShowComuni();
die;
}
?>
Pagina select.class.php:
PHP:
<?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 destinatari";
$res = mysql_query($sql,$this->conn);
$regioni = '<option value="0">scegli...</option>';
while($row = mysql_fetch_array($res))
{
$regioni .= '<option value="' . $row['id_destinatario'] . '">' . utf8_encode($row['ragsociale']) . '</option>';
}
return $regioni;
}
public function ShowProvince()
{
$sql = "SELECT * FROM destinazioni WHERE id_destinatario=$_POST[id_destinatario]";
$res = mysql_query($sql,$this->conn);
$province = '<option value="0">scegli...</option>';
while($row = mysql_fetch_array($res))
{
$province .= '<option value="' . $row['id_destination'] . '">' . utf8_encode($row['indirizzo']) . '</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;
}
}
?>
La prima select funziona bene (vedo la lista) la seconda appena clicco, si ferma su attendere... e in console leggo:
(index):32 Uncaught ReferenceError: destinatari is not defined
at HTMLSelectElement.<anonymous> ((index):32)
at HTMLSelectElement.handle (jquery-1.3.2.js:2693)
at HTMLSelectElement.<anonymous> (jquery-1.3.2.js:2468)
Non capisco...
Grazie a chi volesse aiutarmi.