Newsgroup: it.comp.www.php
Titolo: problema con select

Salve a tutti,
ho un problema con il popolamento delle select.
Ho 6 select che prendono dati da un database, vorrei che scegliendo
un'opzione dall'una si ricarica la pagina e vengono eleiminate le
opzioni non corrispondenti sulle altre 5.
Il problema è che non posso popolare una in funzione dell'altra ma
devono essere popolate tutte e 6 in partenza.
Vi posto il codice per maggiore chiarezza:
$query="SELECT * from prodotti WHERE linea='MONOPIANO' or
linea='PLURIPIANO' or linea='PASSAPARETE'";
 $result = MYSQL_QUERY($query);
 $i=0;
 while ($row = mysql_fetch_array($result))
 {
  $appo[$i]=$row["codice"];
  $i++;
 }
 $ris=arrayUnique($appo);
 $num=count($ris);
 Print "<select name='nome_art'>";
 Print "<option selected></option>";
 for ($j=0; $j<=$num; $j++){
 if ($ris[$j]!=""):
  Print "<option>$ris[$j]</option>";
 endif;
 }
 Print "</select>";
Print "</td></tr><tr><td><font size='3'
face='arial'><b>Poli</b></font></td><td>";
 $query="SELECT * from prodotti WHERE linea='MONOPIANO' or
linea='PLURIPIANO' or linea='PASSAPARETE'";
 $result = MYSQL_QUERY($query);
 $i=0;
 while ($row = mysql_fetch_array($result))
 {
  $appo[$i]=$row["poli"];
  $i++;
 }
 $ris=arrayUnique($appo);
 $num=count($ris);
 Print "<select name='descr'><option selected></option>";
 for ($j=0; $j<=$num; $j++){
 if ($ris[$j]!=""):
  Print "<option>$ris[$j]</option>";
 endif;
 }
 Print "</select>";
Print "</td></tr><tr><td><font size='3'
face='arial'><b>Passo</b></font></td><td>";
 $query="SELECT * from prodotti WHERE linea='MONOPIANO' or
linea='PLURIPIANO' or linea='PASSAPARETE'";
 $result = MYSQL_QUERY($query);
 $i=0;
 while ($row = mysql_fetch_array($result))
 {
  $appo[$i]=$row["passo"];
  $i++;
 }
 $ris=arrayUnique($appo);
 $num=count($ris);
 Print "<select name='passo'><option selected></option>";
 for ($j=0; $j<=$num; $j++){
 if ($ris[$j]!=""):
  Print "<option>$ris[$j]</option>";
 endif;
 }
 Print "</select>";
Print "</td></tr><tr><td><font size='3' face='arial'><b>Capacità di
connessione</b></font></td>";
 $query="SELECT * from prodotti WHERE linea='MONOPIANO' or
linea='PLURIPIANO' or linea='PASSAPARETE'";
 $result = MYSQL_QUERY($query);
 $i=0;
 while ($row = mysql_fetch_array($result))
 {
  $appo[$i]=$row["sezione"];
  $i++;
 }
 $ris=arrayUnique($appo);
 $num=count($ris);
 Print "<td><select name='sez'><option selected></option>";
 for ($j=0; $j<=$num; $j++){
 if (($ris[$j]!="-") and ($ris[$j]!="")):
   Print "<option>$ris[$j]</option>";
 endif;
 }
 Print "</select>";
Print "</td></tr><tr><td><font size='3'
face='arial'><b>Connessione</b></font></td><td>";
 $query="SELECT * from prodotti WHERE linea='MONOPIANO' or
linea='PLURIPIANO' or linea='PASSAPARETE'";
 $result = MYSQL_QUERY($query);
 $i=0;
 while ($row = mysql_fetch_array($result))
 {
  $appo[$i]=$row["connessione"];
  $i++;
 }
 $ris=arrayUnique($appo);
 $num=count($ris);
 Print "<select name='conf'><option selected></option>";
 for ($j=0; $j<=$num; $j++){
 if ($ris[$j]!=""):
   Print "<option>$ris[$j]</option>";
 endif;
 }
 Print "</select>";
Print "</td></tr><tr><td><font size='3' face='arial'><b>Linea
prodotto</b></font></td>";
 $query="SELECT * from prodotti WHERE linea='MONOPIANO' or
linea='PLURIPIANO' or linea='PASSAPARETE'";
 $result = MYSQL_QUERY($query);
 $i=0;
 while ($row = mysql_fetch_array($result))
 {
  $appo[$i]=$row["linea"];
  $i++;
 }
 $ris=arrayUnique($appo);
 $num=count($ris);
 Print "<td><select name='dati'><option selected></option>";
 for ($j=0; $j<=$num; $j++){
  if (($ris[$j]!="CONNETTORI") and ($ris[$j]!="")):
   Print "<option>$ris[$j]</option>";
  endif;
 }
 Print "</select>";
ringrazio anticipatamente chiunque mi darà una mano

devono essere popolate tutte e 6 in partenza.
E perchč no?
Premetto che non ho letto il codice perchč sono pigro.
Ma da quanto scrivi le 5 select sono dipendenti dalla scelta fatta nella
prima.
Pertanto non ha senso che "in partenza" vengano popolate tutte e 6.
Io farei cosě:
- selectA č la prima select
- al caricamento della pagina testo l'esistenza della variabile di selectA
- se la variabile NON esiste, significa che NON hai fatto nessuna scelta su
selectA, pertanto NON visualizzi nemmeno le altre 5 select
- se la variabile esiste, usi il suo valore per popolare le 5 select come ti
serve
Per fare le cose pulite puoi usare 2 form separati: uno con selectA e 
l'altro con le altre 5 select, e con il valore di selectA come hidden.
Ciao
Marco