Salve a tutti, sto utilizzando un codice trovato sul web delle città province comuni dove la select si aggiorna in relazione alle altre. L'ho personalizzata secondo le mie esigenze, ma manca di un elemento: quando avviene il refresh della pagina, non vengono memorizzate le opzioni selezionate in precedenza. Cosa mi consigliate di fare?
Vi riporto il codice:
Questo è il form:
codice:
<table width="800" border="0" cellspacing="5" cellpadding="0" bgcolor="#ebebeb">
<tr>
<td colspan="3"></td>
</tr>
<tr>
<td width="216"><select name="contratto" class="selectImm" id="contratto">
<?php echo $opt->ShowContratto(); ?>
</select></td>
<td width="200"><select name="tipologia" class="selectImm" id="tipologia">
<?php echo $opt->ShowTipologia(); ?>
</select></td>
<td width="257"><select name="immobile" class="selectImm" id="immobile">
<option >Tipo d'immobile</option>
</select></td>
</tr>
<tr>
<td><select name="province" class="selectImm" id="province">
<?php echo $opt->ShowProvince(); ?>
</select></td>
<td><select name="comuni" class="selectImm" id="comuni">
<option>Comune</option>
</select></td>
<td><select name="quartieri" class="selectImm" id="quartieri">
<option>Quartiere</option>
</select></td>
</tr>
</table>
Questo è il js, credo che qui debba richiamare i dati, forse in sessione?
codice:
$(document).ready(function(){
var sceglicomune = '<option>Comune</option>';
var scegliquartiere = '<option>Quariere</option>';
var attendere = '<option>Attendere...</option>';
$("select#comuni").html(sceglicomune);
$("select#comuni").attr("disabled", "disabled");
$("select#quartieri").html(scegliquartiere);
$("select#quartieri").attr("disabled", "disabled");
$("select#province").change(function(){
var provincia = $("select#province option:selected").attr('value');
$("select#comuni").html(attendere);
$("select#comuni").attr("disabled", "disabled");
$("select#quartieri").html(scegliquartiere);
$("select#quartieri").attr("disabled", "disabled");
$.post("select.php", {id_prov:provincia}, function(data){
$("select#comuni").removeAttr("disabled");
$("select#comuni").html(data);
});
});
$("select#comuni").change(function(){
$("select#quartieri").attr("disabled", "disabled");
$("select#quartieri").html(attendere);
var comune = $("select#comuni option:selected").attr('value');
$.post("select.php", {id_com:comune}, function(data){
$("select#quartieri").removeAttr("disabled");
$("select#quartieri").html(data);
});
});
$("#bottone").click(function(){
var contratto = $("select#contratto option:selected").val();
var provincia = $("select#province option:selected").val();
var comune = $("select#comuni option:selected").val();
if(contratto>0 && provincia>0 && comune>0)
{
$.post("dati.php", { contratto: contratto, provincia: provincia, comune: comune, quartiere: quartiere},
function(msg){ $("#risultato").html(msg); });
}
else {
alert("Selezionare i campi obbligatori *");}
});
});
Questa è la select.class:
codice:
<?php
class SelectList
{
protected $conn;
public function __construct()
{
$this->DbConnect();
}
protected function DbConnect()
{
include "../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 ShowProvince()
{
$sql = "SELECT * FROM provincia";
$res = mysql_query($sql,$this->conn);
$provincia = '<option>Provincia</option>';
while($row = mysql_fetch_array($res))
{
$provincia .= '<option value="' . $row['id_prov'] . '">' . utf8_encode($row['provincia']) . '</option>';
}
return $provincia;
}
public function ShowComuni()
{
$sql = "SELECT * FROM comune WHERE id_prov=$_POST[id_prov]";
$res = mysql_query($sql,$this->conn);
$comune = '<option>seleziona...</option>';
while($row = mysql_fetch_array($res))
{
$comune .= '<option value="' . $row['id_com'] . '">' . utf8_encode($row['comune']) . '</option>';
}
return $comune;
}
public function ShowQuartieri()
{
$sql = "SELECT * FROM quartiere WHERE id_com=$_POST[id_com]";
$res = mysql_query($sql,$this->conn);
$quartiere = '<option>seleziona...</option>';
while($row = mysql_fetch_array($res))
{
$quartiere .= '<option value="' . $row['id_quar'] . '">' .utf8_encode($row['quartiere']) . '</option>';
}
return $quartiere;
}
}
?>
codice:
if(isset($_POST['id_prov']))
{
echo $opt->ShowComuni();
die;
}
if(isset($_POST['id_com']))
{
echo $opt->ShowQuartieri();
die;
}