Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Un menù a tendina unico con sia Regioni che Province

    Ciao a tutti ...

    Avrei bisogno del vostro aiuto (non sono ancora esperto in materia, ma qualcosina la mastico per adesso) per riempire una "Select menu" (un menù a tendina) che contenga in una select unica sia le Regioni che le Province.

    Cioè devo fare in modo che quando apro la tendina si veda così:

    Abruzzo
    Chieti
    L'aquila
    Pescara
    Chieti
    Basilicata
    Matera
    Potenza
    ............
    .........
    .........

    Per fortuna nel database che sto utilizzando ho una tabella dal nome "Regioni" con all' interno sia un campo chiamato "regione" sia un campo chiamato "provincia". Questi due campi sono relazionati tra loro attraverso il campo "codreg" (codice regione) che ha lo stesso valore per la regione (ad esempio) "Abruzzo" e tutte le sue province.

    Ora però non so come far in modo che si popoli il menù a tendina con prima la Regione e poi sotto le Province e così via ...

    Qualcuno mi può aiutare ?
    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao,
    se non ho capito male la tua tabella è all'incirca così

    Codice PHP:
    id regione     provincia codreg        | [...]
    1  Piemonte  |     null(?)  | piemonte     |
    2   |   null(?)      |  Torino    piemonte    
    In questo caso ti basterebbe aggiungere l'ordinamento alla tua query

    Codice PHP:
    [...] ORDER BY codreg ASCprovincia ASC 
    Per funzionare però è necessario che il valore di provincia sia vuoto in caso sia una regione.
    Fammi sapere.

    Ciao

  3. #3
    Ciao ...
    la mia tabella è così formata:

    [...] | codreg | regione | provincia | [...]

    [...] | 13 | ABRUZZO | L'aquila | [...]
    [...] | 13 | ABRUZZO | Pescara | [...]
    [...] | 13 | ABRUZZO | Teramo | [...]
    [...] | 13 | ABRUZZO | Chieti | [...]
    [...] | 17 | BASILICATA | Potenza | [...]
    [...] | 17 | BASILICATA | Matera | [...]
    ....
    ....
    ....

    Forse bisogna fare un primo ciclo While per trovare la regione e stamparla con un echo ... e poi al suo interno un altro ciclo While per trovare le province e stamparle con un echo ???


  4. #4
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Se nella tendina la regione non è un valore selezionabile ma solo una label ( come dovrebbe essere anche perchè dal tuo esempio mi pare di capire che la regione di per se non ha un id univoco nella tabella ), ti basta estrarre le province ed ordinarle prima per il campo regione e poi per il campo provincia.

    Fatto ciò puoi usare una variabile temporanea per stampare la regione, qualcosa del tipo

    Codice PHP:
    $province // array (di oggetti in questo esempio) estratto da db
    $regione '';

    foreach(
    $province as $provincia) {
      if(
    $provincia->regione != $regione) {
        echo 
    $regione;
        
    $regione $provincia->regione;
      }

      echo 
    $provincia->provincia;

    Così può andare?

    Fammi sapere

  5. #5
    ho risolto così:

    codice:
    <select name="provincia" id="provincia" size="1">
    <?php
    
    echo "<option value=\"\">Tutte le province</option>";
    
    //regioni
    $resultB = mysql_query ("select * from regioni GROUP BY regione order by regione");
    while ($rowB = mysql_fetch_array($resultB)) {
    echo "<option value=\"$rowB[regione]\" > [ $rowB[regione] ]</option>";
    
    //province
    $resultC = mysql_query ("SELECT * FROM regioni WHERE codreg='$rowB[codreg]' order by provincia");
    while ($rowC = mysql_fetch_array($resultC)) {
    echo "<option value=\"$rowC[provincia]\" >-$rowC[provincia] </option>"; 
    }
    }
    ?>
    </select>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.