Similmente al precedente post anche qui si ha a che fare con chiamate ajax, php e jquery. Spero possa tornare utile a tutti!
Ho tre tabelle "regioni" (id_reg, nome) e "province" (id_prov, id_reg, nome) e "comuni" (id_com, id_reg, id_prov, nome). Ho due menù select (regioni e provincie) collegati che prendono dati dal database, tuttavia il terzo menù (comuni) NON deve essere un select ma deve stamparmi i dati magari dentro una tabella.
fonte: wwwPUNTOyourinspirationwebPUNTOcom/2010/09/09/come-realizzare-delle-select-concatenate-con-php-e-jquery/
Ho sempre una pagina db_config.php e una jquery-1.3.2.js;
un file select.php:
Codice PHP:
<?php
include_once 'select.class.php';
$opt = new SelectList();
if(isset($_POST['id_reg']))
{
echo $opt->ShowTipi();
die;
}
if(isset($_POST['id_prov']))
{
echo $opt->ShowTipi();
die;
}
?>
E il file più importante prova.php:
che ha tra i tags <head>
Codice:
<script type="text/javascript" src="jquery-1.3.2.js"></script><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#regione").change(function(){
var regione = $("select#regione 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_prov:provincia}, function(data){
$("select#comuni").removeAttr("disabled");
$("select#comuni").html(data);
});
});
});
</script> Prima del tag <body>
Codice PHP:
<?php
include_once 'select.class.php'; $opt = new SelectList();
?>
E nei tags <body>
Codice HTML:
<div id="container">
<form action="" id="myform">
<table width="100%" id="gabbia">
<tr>
<td><h2>Riepilogo:</h2>
<table width="100%" border="0" cellpadding="0" cellspacing="0" id="a3">
<tr>
<td width="32%" align="center" valign="top"><strong>Seleziona una Regione:</strong><br /><br />
<select name="regione" size="8" id="regione">
<?php echo $opt->ShowRegione(); ?>
</select></td>
<td width="38%" align="center" valign="top"><strong>Seleziona Provincia:</strong><br /><br />
<select name="province" size="8" id="province">
<option>Scegli...</option>
</select></td>
<td width="30%" align="center" valign="top"><strong>Comuni:</strong><br /><br />
<div id="comuni"></div>
<br />
<br /></td>
</tr>
</table></td></tr><tr><td><h2> </h2></td></table></form></p></div>
Io ho provato a sostituire
Codice HTML:
<select name="comuni" size="8" id="comuni">
<option>Scegli...</option>
</select>
con Codice HTML:
<div id="comuni"></div>
E nel select.class.php:
Codice 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() { $xxx = $_SESSION['idutenti']; $sql = "SELECT * FROM regioni"; $res = mysql_query($sql,$this->conn); while($row = mysql_fetch_array($res)) { $regione .= '<option value="' . $row['id_reg'] . '">' . $row['nome'] . '</option>'; } return $regione; } public function ShowProvince() { $sql = "SELECT * FROM province WHERE id_prov=$_POST[id_reg]"; $res = mysql_query($sql,$this->conn); while($row = mysql_fetch_array($res)) { $province .= '<option value="' . $row['id_prov'] . '">' . $row['nome'] . '</option>'; } return $province; } public function ShowComuni() { $sql = "SELECT *.* FROM comuni WHERE id_com=$_POST[id_prov]"; $res = mysql_query($sql,$this->conn); while($row = mysql_fetch_array($res)) { $comuni .= '' . $row['id_com'] . '' . $row['nome'] . ''; } return $comuni; }}
?>
Comunque nella fonte wwwPUNTOyourinspirationwebPUNTOcom/2010/09/09/come-realizzare-delle-select-concatenate-con-php-e-jquery/ trovate il download diretto.
Come si può fare? 
| | | |
| | Ajax | Ajax (Asynchronous JavaScript and XML) è una linguaggio di programmazione tecnico per sviluppo web | | |
| | | |
| | | |
| | Javascript | JavaScript è un linguaggio di scripting orientato agli oggetti comunemente usato nei siti web | | |
| | | |
| | | |
| | Post | Post è il termine utilizzato per segnalare la scrittura e pubblicazione di un messaggio testuale in un determinato spazio web. | | |
| | | |
| | | |
| | Tag | tag sono le marcature del linguaggio che permettono la formattazione della pagina | | |
| | | |
| | | |
| | PHP | E' una piattaforma trasversale lato server scripting language utilizzata per la creazione di pagine web dinamiche | | |
| | | |
| | | |
| | JQuery | Framework per Javascript realizzato da John Resig. La caratteristica fondamentale della libreria è la manipolazione degli elementi del DOM garantendo la corretta renderizzazione con tutti i browser. | | |
| | | |