- Home
- Categorie
- Coding e Sistemistica
- PHP
- script regioni provincie e comuni
-
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]
-
La tabella e' si strutturata come hai detto
COSI IO OTTENGO
1 Giorgio O
2 GianniE NON
lombardia milano rho 1 Giorgio Opuglia foggia vieste 2 Gianni
IO VOLEVO PRENDERE ANCHE LE COLONNE DELLE ALTRE TRE TABELLE CREATE
nome REGIONI
nome PROVINCIE
nome COMUNI
e inserirle nella ricerca efettuata
-
Ah, vuoi che ti stampi tutti i campi allora?
Non avevo compreso:[php]<?php
require('config.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'];
echo "</br>$regione - $provincia - $comune - $id $nome</br>";
}
//libero memoria
mysql_free_result($result);
//chiudo la connessione
mysql_close();
?>
</form>[/php]
-
grazie pero' non funziona
boh
se trovo lo sbaglio lo posto
ciaoooooo
-
praticamente adesso il problema è sorto quando dopo l iscrizione che funziona benissimo se voglio fare una pagina per la modifica dei dati dell utente ogni volta che ricarico la pagina clikkando ad esempio su un altra regione quando ricarica mi ridà di nuovo giustamente la regione che trova nel database cioè la stessa che cera prima che io cercavo di cambiarla. è in tutto cio perdo anke l id dell iscritto a questo ho provveduto salvandomelo in una variabile di sessione anke se come fatto è un po sporco, magari cè anke un metodo per ripassarmelo quando ricarica dalla select. Grazie aiutatemiiii....
-
Ciao atomo e benvenuto nel Forum GT
Non mi è chiaro il problema, tu dici che al ricaricamento della pagina perdi il dato salvato in sessione......mi pare molto strano, dato che la sessione non c'entra nulla con il form....controlla dove "tocchi" le variabili di sessione nel tuo script....ci deve essere qualcosa che non va'