Salve,
stavo modificando lo schema di select concatenate gestite con chiamata ajax e jquery.
Originariamente selezionando la prima select regioni, nella seconda select venivano stampate le sue province, selezionando la provincia infine i comuni.
Ciò che servirebbe nel mio caso è una concatenazione più breve: selezionando la prima select regioni mi deve stampare le province ma non in una select ma in una tabella!
Lo schema è questo:
(fonte: wwwPUNTOyourinspirationwebPUNTOcom/2010/09/09/come-realizzare-delle-select-concatenate-con-php-e-jquery/)
Select.php
select.class.php
e infine la pagina.php di cui riporto solo il javascript che andrebbe modificato
e nell'html normale di pagina.php c'è il richiamo: <table id="comuni"></table>
Come faccio ad accorciare queste tre concatenate? La regione dovrebbe stamparmi le province nella tabella!
Grazie anticipatamente!
stavo modificando lo schema di select concatenate gestite con chiamata ajax e jquery.
Originariamente selezionando la prima select regioni, nella seconda select venivano stampate le sue province, selezionando la provincia infine i comuni.
Ciò che servirebbe nel mio caso è una concatenazione più breve: selezionando la prima select regioni mi deve stampare le province ma non in una select ma in una tabella!
Lo schema è questo:
(fonte: wwwPUNTOyourinspirationwebPUNTOcom/2010/09/09/come-realizzare-delle-select-concatenate-con-php-e-jquery/)
Select.php
PHP:
<?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;
}
?>
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 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))
{
$riscond .= '<tr><td>' . $row['id_com'] . '</td><td>' . $row['comune'] . '</td><td>' . $row['citta'] . '</td></tr>';
}
return $comuni;
}
}
?>
e infine la pagina.php di cui riporto solo il javascript che andrebbe modificato
Codice:
<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(){
$("table#comuni").html(attendere);
var provincia = $("select#province option:selected").attr('value');
$.post("select.php", {id_pro:provincia}, function(data){
$("table#comuni").html(data);
});
});
});
</script>
Come faccio ad accorciare queste tre concatenate? La regione dovrebbe stamparmi le province nella tabella!
Grazie anticipatamente!