• User

    Problema con campi select dinamici

    Ho due problemi con il seguente codice.
    Il primo, ho un form con 3 campi select, e gli ultimi due dipendono dal primo.
    Le option dei campi select vengono recuperate dinamicamente dal db, e ciò avviene con successo con il primo select, mentre per gli altri due no.
    Come mai? Dove sta l'errore?

    Il secondo, quando scelgo la provincia voglio che la pagina venga ricaricando passando la variabile con il nome della provincia all'url, perchè in seguito la pubblicità della pagina sarà collegata alla provincia scelta.
    Gli altri due campi select dipendono dalla scelta della provincia che quindi deve rimanere selezionata.
    Ora, io ho impostato la variabile select=0 quando nessuna provincia è stata scelta. Quindi in questo caso mi deve fare vedere solo il primo campo select. Quando scelgo la provincia la variabile assume valore 1, e quindi mi deve fare vedere anche gli altri due campi select. Il problema è che il campo provincia me lo fa vedere due volte, una volta non ancora selezionato, e la seconda volta con la selezione fatta, come se la variabile assumesse allo stesso tempo il valore 0 e 1. Perchè? Con il codice che ho scritto la variabile non dovrebbe avere valore solo 1 una volta scelta la privincia? Ecco il codice:

    [PHP] <?php
    $select = 0;
    if ($select == 0) {
    ?>

                <form name="searchprov" action="" method="post">
                    <select name="provincia" id="provincia">
                        <option value="">-- seleziona --</option>
                        <?php
                        $qcli=mysql_query("SELECT DISTINCT provincia FROM dove ORDER BY provincia ASC");
                        while($cli=mysql_fetch_assoc($qcli)){
                        echo "<option value=\"".$cli['provincia']."\">".$cli['provincia']."</option>"; }?>
                    </select>
                    <input type="submit" name="seleziona" id="seleziona" value="Seleziona" />
                </form>
                
                <?php
                    }
                if(isset($_POST['seleziona']) && $_POST['seleziona']!=''){
                    $select = 1;
                    $provselected = $_POST['provincia'];
                    //echo '<meta http-equiv="Refresh" content="3; URL=index.php?prov='.$provselected.'">';
                    echo $select;
                }
                
                if ($select == 1) { ?>
                
                <form method="post" action="" name="search">
                    <select name="provincia" id="provincia">
                <?php
                    $qcli=mysql_query("SELECT DISTINCT provincia FROM dove ORDER BY provincia ASC");
                    while($cli=mysql_fetch_assoc($qcli)){
                    echo "<option value=\"".$cli['provincia']."\""; $prov=0; if ($provselected == $cli['provincia']) { echo 'selected'; $prov++; }  echo ">".$cli['provincia']."</option>"; }?>
                    </select>
                    <select name="localita" id="localita">
                        <option value="">-- seleziona --</option>
                        <?php
                        $qcli=mysql_query("SELECT nome FROM dove WHERE tipo='Localita' AND provincia='".$provselected."' ORDER BY nome ASC");
                        while($cli=mysql_fetch_assoc($qcli)){
                        echo "<option value=\"".$cli['nome']."\">".$cli['nome']."</option>"; }?>
                    </select>
                    <select name="Luogo_di_interesse" id="Luogo_di_interesse">
                        <option value="">-- seleziona --</option>
                        <?php
                        $qcli2=mysql_query("SELECT nome FROM dove WHERE tipo='Luogo_di_interesse' AND provincia='".$provselected."' ORDER BY nome ASC");
                        while($cli2=mysql_fetch_assoc($qcli)){
                        echo "<option value=\"".$cli2['nome']."\">".$cli2['nome']."</option>"; }?>
                    </select>
                    <select name="Luogo_pubblico" id="Luogo_pubblico">
                        <option value="">-- seleziona --</option>
                        <?php
                        $qcli3=mysql_query("SELECT nome FROM dove WHERE tipo='Luogo_pubblico' AND provincia='".$provselected."' ORDER BY nome ASC");
                        while($cli3=mysql_fetch_assoc($qcli)){
                        echo "<option value=\"".$cli3['nome']."\">".$cli3['nome']."</option>"; }
                        echo $qcli3;
                        ?>
                    </select>
                </form>
                
                <?php
                }
                ?>[/PHP]
    

    Grazie a tutti in anticipo.


  • User

    nessuno può darmi una mano?