form con selezione campi

Ciao a tutti,

vorrei farvi una domanda: in un form da riempire con i dati personali dell'utente ho una serie di campi TEXT e un campo di selezione con un menu a tendina. Se l'utene sbaglia viene ricaricata la stessa pagina con i dati che l'utente ha inserito fino a quel momento e il messaggio di errore.

Come faccio a fare comparire la scelta effettuata dall'utente anche nel campo menu a tendina??

Es.

nome: pippo (rimane anche se si riaggiorna la pagina)

provincia: pavia (se riaggiorno la pagina ricompare "seleziona una provincia")

???

inviato 10 anni fa
stellina
X 0 X

devi mettere la parola "selected" nel tag option della provincia selezionata.

<select name="provincia">
  .......
  <option value="pv" selected>Pavia</option>
......
</select>

se le province che riempiono il menu a tendina le hai in un array php, puoi fare il controllo all'interno del ciclo che le stampa,se invece sono statiche, cioè le hai inserite "a mano" nell'html, dovresti mettere il controllo su ogni tag option,il che equivarrebbe a un lavoraccio.

risposto 10 anni fa
ice
ice
1
X 0 X

se mettessi il selected come dici tu rimane sempre selezionata la stessa provincia.

I dati sono presi dinamicamente attraverso un ciclo.

 ???

risposto 10 anni fa
stellina
X 0 X

allora,supponendo che:

$array_prov: è l'array associativo che contiene le provincie con questa struttura: $array_prov = array('mi'=>"Milano",'pv'=>"Pavia",......ecc)

$provincia: è la variabile che contiene la sigla della provincia selezionata.

fai così:

<select name="provincia">
<?php
 foreach($array_prov as $key => $value)
{ 
   if($provincia == $key)
     $selected = "selected";
   else
     $selected = "";
?>
     <option value="<?php echo $key; ?>" <?php echo $selected;?>><?php echo $value;?></option>
<?php
}
?>
</select>

ovviamente il tipo di ciclo che utilizzi dipende dal formato dell'array che contiene le province.

risposto 10 anni fa
ice
ice
1
X 0 X

Questo era il mio vecchio codice:

$province="SELECT .....";

<select name="nomeprov" onchange="setSottocategoria(this)"  style="WIDTH: 95%" >

<option selected>Seleziona una provincia</option>

while ($provincia = mysql_fetch_array($province)) {

$nomeprov = $provincia['nomeprov'];

echo "<option value=$nomeprov>$nomeprov</option>\n";

}

</select>

ho tentato di seguire le tue indicazioni ma mi compare una lista con tutte i nomi di province doppie

???

risposto 10 anni fa
stellina
modificato 10 anni fa
X 0 X

Inizia col togliere "selected" da <option selected>Seleziona una provincia</option>, altrimenti sarà sempre questa la selezione.

Poi il ciclo

while ($provincia = mysql_fetch_array($province)) {

$nomeprov = $provincia['nomeprov'];

echo "<option value=$nomeprov>$nomeprov</option>\n";

}

deve diventare qualcosa del genere:

while ($provincia = mysql_fetch_array($province)) {

$nomeprov = $provincia['nomeprov'];

$selected = $_POST['nomeprov'] == $nomeprov ? 'selected' : '';

echo "<option value=\"$nomeprov\" $selected>$nomeprov</option>\n";

}

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda