- Home
- Categorie
- Coding e Sistemistica
- Coding
- script regioni provincie e comuni
- 
							
							
							
							
							
script regioni provincie e comuniCiao a tutti, 
 ho un database con tre tabelle (Regioni, Provincie, Comuni)
 ora devo fare una form con tre Select.
 Nella prima la regione, nella seconda le provincie e nella terza le città/paesi.
 Selezionando la regione, la seconda si riempie delle provincie di quella regione, selezionando la seconda, la terza si riempie dei comuni di quella provincia.
 Il tutto estraendo i dati dal database...
 come posso fare?
 soluzioni?
 resto in attesa dei vostri cari suggerimenti...
 Ciao!!nessun suggerimento? 
 vi prego [...]...!
 
- 
							
							
							
							
							Ciao talkoman le provincie e comuni sono legati alla tabella padre da qualcosa? 
 esempio:regione 
 id | descrizione
 1 | Siciliaprovincia 
 *id |descrizione| id_regione
 *1 | Catania | 1comune 
 *id |descrizione| id_provincia
 *1 | Acitrezza | 1Se si (anche perché personalmente non troverei altri modi) ti basterà assegnare una query ad ogni select per tirar fuori i dati legati alla tabella padre Regione: SELECT descrizione FROM regione ```Provincie:SELECT descrizione FROM provincie WHERE id_regione='$id_regione' SELECT descrizione FROM comuni WHERE id_provincia='$id_provincia' Per ottenere gli id ovviamente ti recuperi il dato postato dalla select a cui assegnerai come value l'id dell'elemento ;)
 
- 
							
							
							
							
							credo di aver capito....tu vuoi che il tutto venga fatto "al volo" no? Piccolo problema....tu abla espanol!?  Vai qui... 
 
- 
							
							
							
							
							
vi faccio vedere cosa dovrei fare. 
 Provate a compilare questo form:
 tecnocasa.it/commerciale/txtsearch/searchi.jsp?conf=ra&orig=SitoTecnocasa
 
- 
							
							
							
							
							vedo che già funziona........non è ben chiaro allora che vorresti fare  Se come dice ciccio6630 vuoi che ti si faccia senza l'aggiornamento pagina allora devi ricorrere al Js o ajax  
 
- 
							
							
							
							
							
quello non l'ho fatto io. 
 Ne devo realizzare uno uguale e mi serve una mano....
 
- 
							
							
							
							
							bene....le query da fare sono quelle... 
 dove hai dubbi?
 
- 
							
							
							
							
							
come fargliele eseguire ogni volta che cambio regione.... 
 
- 
							
							
							
							
							In PHP non puoi far altro che mettere un bel tasto submit dato che è un linguaggio lato server 
 In Js (ovvero com'è fatto in quel sito da te linkato)[php]<select onchange="document.nome_form.submit()" name="region">[/php] 
 ricarica la pagina alla selezione di una nuova regione e ti raccogli i dati postati per rieseguire le query
 
- 
							
							
							
							
							
@Samyorn said: ricarica la pagina alla selezione di una nuova regione e ti raccogli i dati postati per rieseguire le query ecco....proprio questo non so fare.....:bho: 
 
- 
							
							
							
							
							Ah, ecco  
 Allora prova così, dovrebbe andare 
 [php]<?
 $id_regione="";
 $id_provincia="";
 $id_comune="";$id_regione=$_POST['regione']; 
 $id_provincia=$_POST['provincia'];
 $id_comune=$_POST['comune'];
 ?><form action="page.php" name="search" method="POST"> 
 <select onchange="document.search.submit()" name="regione">
 <option value="">Scegli regione...</option>
 <?
 $sql_regione="SELECT * FROM regione ORDER BY descrizione";
 $query_regione=@mysql_query($sql_regione) or die (mysql_error());
 while ($array=mysql_fetch_array($query_regione))
 {
 ?>
 <option value="<? echo $array['id']; ?>"<? if ($id_regione==$array['id']) {echo " selected";} ?>><? echo $array['descrizione']; ?></option>
 <?
 }
 ?>
 </select><select onchange="document.search.submit()" name="provincia"> <option value="">Scegli provincia...</option> <? $sql_provincia="SELECT * FROM provincia"; if ($id_regione!="") { $sql_provincia.=" WHERE id_regione='$id_regione'"; } $sql_provincia.=" ORDER BY descrizione"; $query_provincia=@mysql_query($sql_provincia) or die (mysql_error()); while ($array=mysql_fetch_array($query_provincia)) { ?> <option value="<? echo $array['id']; ?>"<? if ($id_provincia==$array['id']) {echo " selected";} ?>><? echo $array['descrizione']; ?></option> <? } ?> </select> <select onchange="document.search.submit()" name="comune"> <option value="">Scegli il comune...</option> <? $sql_comuni="SELECT * FROM comuni"; if ($id_provincia!="") { $sql_comuni.=" WHERE id_provincia='$id_regione'"; } $sql_comuni.=" ORDER BY descrizione"; $query_comunia=@mysql_query($sql_comuni) or die (mysql_error()); while ($array=mysql_fetch_array($query_comunia)) { ?> <option value="<? echo $array['id']; ?>"<? if ($id_comune==$array['id']) {echo " selected";} ?>><? echo $array['descrizione']; ?></option> <? } ?> </select></form>[/php] 
 
- 
							
							
							
							
							
ehi grazie tante per il codice. 
 l'ho provato ma non va....
 Cioè le select si riempiono ma sono bianche.....
 non si vede il contenuto!!!
 e in più pur non scegliendo la regione, sia comune che provincia sono piene.... :s
 
- 
							
							
							
							
							Io ho messo dei nomi campo a caso, devi sistemarli per come hai impostato tu il Db 
 L'ho testato e funziona, devi solo cambiare questa riga, ho dimenticato di cambiare la variabile...ma comunque mi funziona 
 [php]$sql_comuni.=" WHERE id_provincia='$id_provincia'";[/php]EDIT:
 si, tira fuori cmq i dati, cambiala così:[php]<? 
 $id_regione="";
 $id_provincia="";
 $id_comune="";$id_regione=$_POST['regione']; 
 $id_provincia=$_POST['provincia'];
 $id_comune=$_POST['comune'];
 include "config.inc.php";
 ?><form action="index.php" name="search" method="POST"> 
 <select onchange="document.search.submit()" name="regione">
 <option value="">Scegli regione...</option>
 <?
 $sql_regione="SELECT * FROM regione ORDER BY descrizione";
 $query_regione=@mysql_query($sql_regione) or die (mysql_error());
 while ($array=mysql_fetch_array($query_regione))
 {
 ?>
 <option value="<? echo $array['id']; ?>"<? if ($id_regione==$array['id']) {echo " selected";} ?>><? echo $array['descrizione']; ?></option>
 <?
 }
 ?>
 </select><select onchange="document.search.submit()" name="provincia"> <option value="">Scegli provincia...</option> <? $sql_provincia="SELECT * FROM provincia WHERE id_regione='$id_regione' ORDER BY descrizione"; $query_provincia=@mysql_query($sql_provincia) or die (mysql_error()); while ($array=mysql_fetch_array($query_provincia)) { ?> <option value="<? echo $array['id']; ?>"<? if ($id_provincia==$array['id']) {echo " selected";} ?>><? echo $array['descrizione']; ?></option> <? } ?> </select> <select onchange="document.search.submit()" name="comune"> <option value="">Scegli il comune...</option> <? $sql_comuni="SELECT * FROM comuni WHERE id_provincia='$id_provincia' ORDER BY descrizione"; $query_comunia=@mysql_query($sql_comuni) or die (mysql_error()); while ($array=mysql_fetch_array($query_comunia)) { ?> <option value="<? echo $array['id']; ?>"<? if ($id_comune==$array['id']) {echo " selected";} ?>><? echo $array['descrizione']; ?></option> <? } ?> </select></form>[/php] 
 
- 
							
							
							
							
							
si ho già adattato alle mie esigenze....ma non funziona lo stesso.... 
 posto?
 
- 
							
							
							
							
							Ho editato prova in quel modo  se non funziona nemmeno così posta la pagina e la struttura delle tabelle  
 
- 
							
							
							
							
							
ecco la pagina compro.php [PHP]<?php 
 $id_regione="";
 $id_provincia="";
 $id_comune="";$id_regione=$_POST['regione']; 
 $id_provincia=$_POST['provincia'];
 $id_comune=$_POST['comune'];
 ?><form action="compro.php" name="search" method="POST"> 
 <select onchange="document.search.submit()" name="regione">
 <option value="">Scegli regione...</option>
 <?php
 $sql_regione="SELECT nome,codice FROM regioni ORDER BY nome";
 $query_regione=@mysql_query($sql_regione) or die (mysql_error());
 while ($rigaR=mysql_fetch_array($query_regione)){
 $regione=$rigaR['nome'];
 $idRegione=$rigaR['codice'];
 echo "<option value='$idRegione'";
 if ($id_regione==$idRegione)
 echo " selected";
 echo $regione ."</option>";
 }
 ?>
 </select></td>
 </tr>
 <tr>
 <td>Provincia: </td>
 <td>
 <select onchange="document.search.submit()" name="provincia">
 <option value="">Scegli provincia...</option>
 <?php
 if(isset($id_regione)){
 $sql_provincia="SELECT * FROM province WHERE codice_regione='$id_regione' ORDER BY nome";
 $query_provincia=@mysql_query($sql_provincia) or die (mysql_error());
 while ($rigaP=mysql_fetch_array($query_provincia)){
 $provincia=$rigaP['nome'];
 $idProvincia=$rigaP['codice'];
 echo "<option value='$idProvincia'";
 if ($id_provincia==$idProvincia) {echo " selected";}
 echo $provincia."</option>";
 }}
 ?>
 </select></td>
 </tr>
 <tr>
 <td>Comune: </td>
 <td>
 <select onchange="document.search.submit()" name="comune">
 <option value="">Scegli il comune...</option>
 <?php
 if(isset($id_provincia)){
 $sql_comuni="SELECT * FROM comuni WHERE codice_provincia='$id_provincia' ORDER BY nome";
 $query_comuni=@mysql_query($sql_comuni) or die (mysql_error());
 while ($rigaC=mysql_fetch_array($query_comuni)){
 $comune=$rigaC['nome'];
 $idComune=$rigaC['codice'];
 echo "<option value='$idComune'";
 if ($id_comune==$idComune) {echo " selected";}
 echo $comune."</option>";
 }}
 ?>
 </select></td>
 </tr>
 </form>[/PHP]Tabelle: 
 COMUNI
 id
 codice_provincia
 codice
 nomePROVINCE 
 id
 codice_regione
 codice
 nomeREGIONI 
 id
 codice
 nome
 
- 
							
							
							
							
							ti eri dimenticato di chiudere i tag delle <option**> **[PHP]<?php 
 $id_regione="";
 $id_provincia="";
 $id_comune="";$id_regione=$_POST['regione']; 
 $id_provincia=$_POST['provincia'];
 $id_comune=$_POST['comune'];
 ?><form action="index.php" name="search" method="POST"> 
 <select onchange="document.search.submit()" name="regione">
 <option value="">Scegli regione...</option>
 <?php
 $sql_regione="SELECT nome,codice FROM regioni ORDER BY nome";
 $query_regione=@mysql_query($sql_regione) or die (mysql_error());
 while ($rigaR=mysql_fetch_array($query_regione)){
 $regione=$rigaR['nome'];
 $idRegione=$rigaR['codice'];
 echo "<option value='$idRegione'";
 if ($id_regione==$idRegione)
 echo " selected";
 echo ">".$regione ."</option>";
 }
 ?>
 </select></td>
 </tr>
 <tr>
 <td>Provincia: </td>
 <td>
 <select onchange="document.search.submit()" name="provincia">
 <option value="">Scegli provincia...</option>
 <?php
 if(isset($id_regione)){
 $sql_provincia="SELECT * FROM province WHERE codice_regione='$id_regione' ORDER BY nome";
 $query_provincia=@mysql_query($sql_provincia) or die (mysql_error());
 while ($rigaP=mysql_fetch_array($query_provincia)){
 $provincia=$rigaP['nome'];
 $idProvincia=$rigaP['codice'];
 echo "<option value='$idProvincia'";
 if ($id_provincia==$idProvincia) {echo " selected";}
 echo ">".$provincia."</option>";
 }}
 ?>
 </select></td>
 </tr>
 <tr>
 <td>Comune: </td>
 <td>
 <select onchange="document.search.submit()" name="comune">
 <option value="">Scegli il comune...</option>
 <?php
 if(isset($id_provincia)){
 $sql_comuni="SELECT * FROM comuni WHERE codice_provincia='$id_provincia' ORDER BY nome";
 $query_comuni=@mysql_query($sql_comuni) or die (mysql_error());
 while ($rigaC=mysql_fetch_array($query_comuni)){
 $comune=$rigaC['nome'];
 $idComune=$rigaC['codice'];
 echo "<option value='$idComune'";
 if ($id_comune==$idComune) {echo " selected";}
 echo ">".$comune."</option>";
 }}
 ?>
 </select></td>
 </tr>
 </form>[/PHP]
 
- 
							
							
							
							
							
grazie!!! 
 un genio!!
 
- 
							
							
							
							
							
ciao  
 allora
 in questo script ci sono tre selectex lombardia milano rho O 
 puglia foggia viestenel mio script eseguo la ricerca in rappresentanti e il risultato sarebbe ex 1 Giorgio O 
 2 GianniMA SE IO VOLESSI OLTRE ALLA RICERCA CE NEL RISULTATO MI COMPARISSE .... ex lombardia milano rho 1 Giorgio O puglia foggia vieste 2 Gianni cosa devo fare............... <?php 
 require('config.php');
 ?>
 <?php
 $id_regioni="";
 $id_provincie="";
 $id_comuni="";
 $id_regioni=$_POST['regione'];
 $id_provincie=$_POST['provincia'];
 $id_comuni=$_POST['comune'];
 ?>
 <form action="<?php $_SERVER["PHP_SELF"]?>" name="search" method="POST">
 <select onchange="document.search.submit()" name="regione">
 <option value="">Scegli regione...</option>
 <?php
 $sql_regione="SELECT * FROM regioni ORDER BY nome";
 $query_regione=@mysql_query($sql_regione) or die (mysql_error());
 while ($rigaR=mysql_fetch_array($query_regione)){
 $regione=$rigaR['nome'];
 $idRegione=$rigaR['id_regioni'];
 echo "<option value='$idRegione'";
 if ($id_regioni==$idRegione)
 echo " selected";
 echo ">".$regione ."</option>";
 }
 ?>
 </select></td>
 </tr>
 <tr>
 <td>Provincia: </td>
 <td>
 <select onchange="document.search.submit()" name="provincia">
 <option value="">Scegli provincia...</option>
 <?php
 if(isset($id_regioni)){
 $sql_provincia="SELECT * FROM provincie WHERE id_regioni='$id_regioni' ORDER BY nome";
 $query_provincia=@mysql_query($sql_provincia) or die (mysql_error());
 while ($rigaP=mysql_fetch_array($query_provincia)){
 $provincia=$rigaP['nome'];
 $idProvincia=$rigaP['id_provincie'];
 echo "<option value='$idProvincia'";
 if ($id_provincie==$idProvincia) {echo " selected";}
 echo ">".$provincia."</option>";
 }}
 ?>
 </select></td>
 </tr>
 <tr>
 <td>Comune: </td>
 <td>
 <select onchange="document.search.submit()" name="comune">
 <option value="">Scegli il comune...</option>
 <?php
 if(isset($id_provincie)){
 $sql_comuni="SELECT * FROM comuni WHERE id_provincie='$id_provincie' ORDER BY nome";
 $query_comuni=@mysql_query($sql_comuni) or die (mysql_error());
 while ($rigaC=mysql_fetch_array($query_comuni)){
 $comune=$rigaC['nome'];
 $idComune=$rigaC['id_comuni'];
 echo "<option value='$idComune'";
 if ($id_comuni==$idComune) {echo " selected";}
 echo ">".$comune."</option>";
 }}
 ?>
 </select></td>
 </tr>
 <label>
 <?php
 $sql_rappresentanti = "SELECT * FROM rappresentanti WHERE id_comuni='$id_comuni' ORDER BY nome";
 $query_rappresentanti=@mysql_query($sql_rappresentanti) or die (mysql_error());
 while ($rapp=mysql_fetch_array($query_rappresentanti))
 {
 $nome=$rapp['nome'];
 $id=$rapp['id_rappresentanti'];
 echo "</br>$id $nome</br>";
 }
 //libero memoria
 mysql_free_result($result);
 //chiudo la connessione
 mysql_close();
 ?>
 </form>thanks    
 
- 
							
							
							
							
							Se strutturi la tabella rappresentanti così id | nome | id_comuni immagino dovresti scrivere 
 [PHP] $sql_rappresentanti = "SELECT * FROM rappresentanti WHERE id_comuni='$id_comuni' ORDER BY nome";
 $query_rappresentanti=@mysql_query($sql_rappresentanti) or die (mysql_error());
 while ($rapp=mysql_fetch_array($query_rappresentanti))
 {
 $nome=$rapp['nome'];
 $id=$rapp['id'];
 echo "</br>$id $nome</br>";
 }[/PHP]
 