Select dinamiche con JQuery e PHP
Pagina 1 di 3
Implementare select dinamiche tramite linguaggio javascript puro è possibile solo scrivendo numerose righe di codice, ma tramite framework come jQuery il tutto si riduce ad una selezione di valori e di richieste asincrone ajax e ad uno script in PHP; nel nostro caso vedremo come creare, con l'ausilio di JQuery appunto, una select dinamica di regioni, province e comuni (per farlo il nostro script PHP dovrà comunicare con MySQL).
La pagina che andremo ad implementare visualizzerà tre select (regioni, province e comuni); per iniziare saranno popolate sole le select regioni e province con tutte quelle presenti nel database, poi tramite la selezione della regione verranno filtrate le rispettive province e verrà popolata anche la select dei comuni con tutte quelli appartenenti alla regione selezionata.
Database MySQL
Il database dell'esempio è composto dalle seguente tre tabelle:
CREATE TABLE `regioni` ( `id` int(11) unsigned NOT NULL, `regione` text NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE `province` ( `id` int(10) unsigned NOT NULL, `id_regione` int(10) unsigned NOT NULL, `provincia` text NOT NULL, `sigla` varchar(2) NOT NULL, PRIMARY KEY (`id`) ); CREATE TABLE IF NOT EXISTS `comuni` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id_regione` int(10) unsigned NOT NULL, `id_provincia` int(10) unsigned NOT NULL, `comune` text NOT NULL, PRIMARY KEY (`id`) );nella tabella comuni abbiamo sia l'identificativo della provincia sia quello della regione, in questo modo è possibile popolare la select dei comuni anche dopo aver selezionato solo la regione.
Dal forum di questo sito potete scaricare il database completo di regioni, province e comuni italiani aggiornato al 1 gennaio 2009.
Connessione al database MySQL
In questo file eseguiremo solamente la connessione al database, e potremo includerlo in qualunque script in cui interagiremo con il database:
<?php
$conn = mysql_connect("hostname", "username", "password") or die(mysql_error());
mysql_select_db("db_name", $conn) or die(mysql_error());
?>







