Newsgroup: it.comp.lang.javascript
Titolo: due select, il primo scopre il secondo

--due select, il primo scopre il secondo
Ho questa porzione di codice.
Il primo select e' sempre visibile mentre il secondo appare se nel
primo scelgo la voce "Compasso d'Oro ADI" e scompare altrimenti
perche' solo per la voce "Compasso d'Oro ADI" posso scegliere l'anno
del premio.
Come posso fare  a creare questa relazione ?
<select name="collezione" size="1" class="caselle_corte"> 
  <option value="0" selected>Collezione...</option> 
  <option value='1'>Compasso d'Oro ADI</option> 
  <option value='5'>iMade</option> 
  <option value='6'>Selettiva</option> 
</select> 
<br> 
<br> 
<select name="annopremio" size="1" class="caselle_corte"> 
  <option value="0" selected>Anno premio...</option> 
  <option value='1954'>1954</option> 
  <option value='1955'>1955</option> 
  <option value='2004'>2004</option> 
</select> 

Ho provato con il codice qui sotto ma la pagina non si ricarica. 
Se si ricaricasse prenderei il parametro e con un if nascondo o
visualizzo il secondo select 
<select name="collezione" size="1" class="caselle_corte"> 
<option value="0" selected>Collezione...</option> 
<% 
do while not rs5.EOF 
response.write "<option
onchange='location.href=pannelloa.asp?collezione=" & rs5("id") & "'
value='"&rs5("id")&"'>" & rs5("nomebreve") &"</option>" 
rs5.MoveNext 
loop 
%> 
</select>

Devi mettere l'evento sulla select, non sulla singola option, e prendere il
value corrente della option (anziché scriverlo lato server).
onchange dovrebbe essere corretto; dato che non ho tempo per provare, se non
va prova con onclick
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
B.M. -- 

La funzione che uso e' questa ma ho scoperto che funziona solo con
Internet Explorer e non con Netscape !
Posso risolvere il problema ?
Come ?
<script>
 
 
function nascondi(indice)
{
 
 if (indice != 0) {
top.testata.document.getElementById("nomecollezione").innerHTML=document.getElementById("collezione").options[indice].text;
 }
  if (indice == 0) {
  top.testata.document.getElementById("nomecollezione").innerHTML="";
 }
 
 if (indice == 1) { 
  document.getElementById("annopremio").style.display = "inline";
  }
 else
 {
  document.getElementById("annopremio").style.display = "none";
  document.getElementById("annopremio").value = "0";
 }
}
 
 
  </script>

 Come ?
Boh, non vedo cosě ad occhio problemi con netscape (>=6, immagino...se
netscape4 allora č tutto un altro discorso)
Non sono comunque espertissimo, sentiamo gli altri


> Come posso fare  a creare questa relazione ?
Fai semplicemente una funzione nell'onchange che visualizzi/nascondi
l'elemento identificato dall'attributo id, cosi':
<select id="collezione" name="collezione"
size="1" class="caselle_corte"
onchange="document.getElementById('annopremio').style.display=
(this.value=='1')?'':'none'">
  <option value="0" selected="selected">Collezione...</option>
  <option value='1'>Compasso d'Oro ADI</option>
  <option value='5'>iMade</option>
  <option value='6'>Selettiva</option>
</select>
<br>
<br>
<select id="annopremio" name="annopremio" size="1"
 class="caselle_corte" style="display:none">
