Newsgroup: it.comp.www.html
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>

Dovresti scrivere una funzioncina JS che rende visibile/invisibile la select
in base all'elemento selezionato
<select name="collezione" size="1" class="caselle_corte"
onchange="funzioncina(this.selectedIndex)">
funzioncina(this.selectedIndex) dovrebbe chiamare la funzione passando
l'indice (da 0-n) dell'opzione selezionata.
Quindi nella funzione verificherai:
function funzioncina(indice)
{
se indice == 1 allora setta style.display del secondo select = 'inline'
altrimenti stile.display = 'none'
}
Non so quali browser prevedono l'aggiornamento della pagina a runtime
utilizzando display.. dovresti fare delle prove... e senmai provare con
visibility: hidden/visible... vabbè io l'ho buttata la, se qualcuno ha
maggiori dettagli sulla compatibilità.. :)
-- 
:: Massimiliano Mattei
:: Project Leader
:: EVA Group :: 
www.evagroup.net
:: Soluzioni extranet :: e-business :: corporate portal

document.location.href..
il nome della pagina tra virgolette con tutta la querystring..


function nascondi(indice)
{
 if (indice == 1) { 
  document.getElementById("annopremio").style.display = "visible";
  }
 else
 {
  document.getElementById("annopremio").style.display = "none";
 }
}
fatto, grazie

ho un problema quando il controllo e' nasconto non riesco piu' a
riaccenderlo mi dice
impossibile ottenere la proprieta' display

non funziona piu' , mistero

ok
function nascondi(indice)
{
 if (indice == 1) { 
  document.getElementById("annopremio").style.display = "inline";
  }
 else
 {
  document.getElementById("annopremio").style.display = "none";
  document.getElementById("annopremio").value = "0";
 }
}

document.getElementById("collezione").value
collezione e' il nome della mia select
e l'istruzione legge il valore dell'attributo VALUE
Come faccio a leggere invece del value il contenuto del tag <option> ?

Dovrebbe essere...
document.getElementById("collezione").options[document.getElementById("colle
zione").selectedIndex].value
document.getElementById("collezione").options[document.getElementById("colle
zione").selectedIndex].text
Non sono sicuro.. prova..


Riassumo tutto e scusatemi per i troppi post.
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>

 Riassumo tutto e scusatemi per i troppi post.
[CUT]
Sei OT.
Posta su it.comp.lang.javascript
Ciao.
-- 
[Non siamo materia che aspetta, ma schemi che si perpetuano.]
Rhadamanth.net (
http://www.rhadamanth.net
)
FIAG (
http://www.fiag.it
)
Savona Web (
http://www.savonaweb.net
)

Per questo avevo scritto che non ricordo quali browser esgueno la
renderezzazione in tempo reale dopo aver già letto la pagina..
Prova con "visibility" invece di "display"
