Select concatenate Regioni-Province (con Variazione)

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
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
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>
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! :)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non so se dico una put...ta, ma se vuoi solo regioni con la select e le province in una tabella perchè non provi ad eliminare tutto quello che si riferisce ai comuni
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;
}
*/
?>
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>';
            $province = '<table>';
            while($row = mysql_fetch_array($res)){
            	//$province .= '<option value="' . $row['id_pro'] . '">' . utf8_encode($row['nome_provincia']) . '</option>';
				$province .='<tr><td>' . $row['id_pro'] . '</td><td>' . utf8_encode($row['nome_provincia']) . '</td></tr>';
			}
			$province .='</table>';
            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;
        }*/
}
?>
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>
prova, mal che vada non funzia (non sono molto esperto di jq)
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Sì esatto :) però servirebbe ora la forma abbreviata: cliccando sulla select "regioni" deve stamparmi le province nella tabella!
 

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
La prima parte del codice è semplice (tolgo le parti non essenz):
Codice:
<script type="text/javascript">
	$(document).ready(function(){

		var scegli = '<option value="0">Scegli...</option>';
		var attendere = '<option value="0">Attendere...</option>';	

		
		$("select#regioni").change(function()
		{
			var regioni= $("select#regioni option:selected").attr('value');
			
			$.post("select.php", {id_reg:regioni}, function(data)
			{
				$("select#province").removeAttr("disabled"); 
				$("select#province").html(data);	
			});
			
		});

Il problema viene ora: una volta che si è selezionato la regione, javascript deve cambiare la funzione e mandarmi i risultati nella tabella, io ho scritto una cosa del genere ma non funziona :(
Codice:
		$("table#province").change(function(){
			$("table#province").html(data);
					
			
	});	
	});

Qualcuno sa darmi una mano?
 
Ultima modifica:

nofcfro

Utente Attivo
27 Mag 2012
72
0
6
Risolto!

Grazie ma ho risolto così :)
(spero possa essere utile!)

Codice:
<script type="text/javascript">
	$(document).ready(function(){

		var scegli = '<option value="0">Scegli...</option>';
		var attendere = '<option value="0">Attendere...</option>';
		
		$("table#province").html(scegli);
		$("table#province").attr("disabled", "disabled");
		
		
		$("select#regione").change(function(){
			var regione= $("select#regione option:selected").attr('value');
			$("table#province").html(attendere);
			$("table#province").attr("disabled", "disabled");
			
			$.post("select.php", {id_reg:regione}, function(data){
				$("table#province").removeAttr("disabled"); 
				$("table#province").html(data);	
			});
		});	
		
		$("table#province").html(data);
					
			
		
	});
	
</script>
 
Discussioni simili
Autore Titolo Forum Risposte Data
neo996sps [Laravel 5.1 + ajax] Popolare select concatenate Regioni, Province, Comuni PHP 1
N Select concatenate Regioni-Province-Comuni (con Variazione) Javascript 14
Emix Select concatenate php sql ajax PHP 2
F [Javascript] select list concatenate - passare valore dalla prima alla seconda Javascript 7
S Select Concatenate Ajax, php, sql Presentati al Forum 16
A select concatenate Javascript 1
N AsmSelect jQuery, Select concatenate jQuery 3
D Select concatenate impostare di default dato memorizzato Javascript 4
ciccio1892 Select concatenate con Ajax inviare scelta utente tramite post insieme ad altri dati form PHP 3
R select concatenate solo php PHP 12
S Select dinamiche concatenate Ajax 8
B Select concatenate di tutte le province e comuni d'Italia aggiornato al 2007 Presenta il tuo Sito 0
L Ripetere Campi disabilitando input in riferimento ad un valore della select jQuery 0
otto9due Ordinare option di una select Javascript 5
W MySQL ciclo in SELECT MySQL 0
W MySQL SELECT list dinamica MySQL 0
M Select Option dentro una Table jQuery 2
G Colorare menu select attraverso ricerca php PHP 0
L problema con query select PHP 2
F menù select dinamico da db in php PHP 3
D popolare campi tra th alla select PHP 36
M Estrarre valore con SELECT COUNT PHP 0
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Select Dinamiche...da txt? PHP 3
E Php select option e ajax PHP 23
R Select concatenata che non funziona la seconda volta Ajax 3
L select join e sottrazione punti PHP 13
L input dati con inser into select ? PHP 4
V hierarchy-select jQuery 0
F query e form con select multipla PHP 17
T recupero valori select multipla da android Javascript 3
J php, scegliere autista da select e mostrare se ha fatto un incidente PHP 8
Tommy03 Select in ordine per numero di record MySQL 7
T problema con select dinamica con jquery Javascript 0
J Far comparire e scomparire un div con un select Javascript 1
M Opzioni select da 1 a 200 PHP 0
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1
C input in sostituzione della select PHP 2
G Insert into select - Aiuto MySQL 0
max1974 autocomplete trigger select jQuery 0
X [Select] Valori chiave non presenti in un'altra tabella MySQL 2
M Estrarre dati da una select HTML PHP 3
MarcoGrazia jquery validate, necessità di validare almeno un elemento select su due jQuery 1
T [PHP] Autocompilazione input multiple da una select PHP 1
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
S [PHP] aggiornamento table tramite select senza ricaricare la pagina PHP 5
psicomia Gestione funzione in javascript in tabella richiamare"textarea" valori preimpostati in "select" Javascript 2
M [PHP] Problema con query select PHP 2
C [PHP] Controllo <select> comportamento anomalo PHP 2
G [PHP] Select con opzioni dipendenti da un'altra select PHP 3

Discussioni simili