Newsgroup: it.comp.lang.javascript
Titolo: SELECT DINAMICO

Salve,
devo realizzare un select dinamico:
ci sono più select legati fra loro, che contengono gli stessi valori
all'interno,
ma una volta selezionato il primo nel secondo non deve comparire il
valore selezionato precedentemente e cosi via negli altri select...!
Non so se mi sono spiegato bene...
...c'è qualcuno che saprebbe indicarmi come fare...credo la soluzione
ci sia in javascript, ma nn lo conosco molto bene!
Grazie

 valore selezionato precedentemente e cosi via negli altri select...!
sulla select, onchange rimuovi la option nella successiva.
Dovrai tener traccia di ciò che rimuovi perché se uno cambia selezione
immagino dovrai reinserirla.
Qua un po' di spunti per gestire le options nelle select:
 
http://www.criosoftware.it/defaultHTselect.aspx
-- 
"Emancipate yourselves from mental slavery;
None but ourselves can free our minds"
									    B.M.


wrote:

Io ho risolto così...girando quà e là ho trovato una soluzione
adattabile...magari potra essere utile a qualke altro con lo stesso
mio problema :
<html>
<head>
<script type="text/javascript">
function synchronize(frm,sn) {
  var thisel = frm.elements['select'+sn];
  thisel.disabled = true;
  var opt = thisel.options[thisel.selectedIndex].text;
  for (var i=0; i<3; ++i)
  {
    var cursel = frm.elements['select'+i];
    if (!cursel.disabled && i!=sn)
	{
      for (j=0; j<cursel.length; ++j)
	  {
        if (cursel.options[j].text == opt)
          cursel.remove(j);
      }
    }
  }
}
function riabilita(slct0)
{
 slct0.select0.disabled = false;
 slct0.select1.disabled = false;
 slct0.select2.disabled = false;
 slct0.submit();
}
</script>
</head>
<body>
<form action="new.html" method="GET" name="myForm">
<select name="select0" onChange="synchronize(this.form,0)">
<option>Seleziona:</option>
<option>Mela</option>
<option>Ananas</option>
<option>Kiwi</option>
</select>
<select name="select1" onChange="synchronize(this.form,1)">
<option>Seleziona:</option>
<option>Mela</option>
<option>Ananas</option>
<option>Kiwi</option>
</select>
<select name="select2" onChange="synchronize(this.form,2)">
<option>Seleziona:</option>
<option>Mela</option>
<option>Ananas</option>
<option>Kiwi</option>
</select>
<input type="button" name="invia" value="invia"
onclick="riabilita(this.form)">
</form>
<form  name="myForm1" method="post">
<input type="submit" name="rifai" value="rifai"
onclick="location.replace('new2.html')">
</form>
</body>
</html>

   thisel.disabled = true;
e se uno sbaglia deve ricaricare la pagina e ricominciare daccapo?
Se a te va bene così bon.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.


ho messo un apposito pulsante per ricaricare in caso di errore,
capisco che non è una
soluzione pulitissima, ma per ora sono riuscito a sbrigarmela
così...se riesci a fare qualcosa di meglio te ne sarei grato!

 così...se riesci a fare qualcosa di meglio te ne sarei grato!
devi salvarti in una var globale la scelta; quando viene scelta una voce in
una select devi prima ripristinare la "vecchia" e poi rimuovere la nuova.
Oppure, se le scelte sono poche come nell'esempio, ad ogni onchange
ripopoli le select interamente (tranne quella selezionata).
-- 
"Non sai che ci vuol scienza
 ci vuol costanza
 ad invecchiare senza maturità"
									    F.G.


Riesci a scrivermi qlk riga di codice...
grazie

 Riesci a scrivermi qlk riga di codice...
no, riesco a scriverti un prototipo:
 - onchange sulla prima select:
    - azzeri la seconda select, del tipo   
      for(var x=tuaselect.options.length-1;x>=0;x--) {
   	tuaselect.options[x]=null;
   	tuaselect.length=x;
      } 
    - cicli le option della prima select e accodi nella seconda, tranne che
per il valore selezionato; del tipo
      for(var x=0,objs=tuaprimaselect.options;x<objs.length;x++)
       if(objs[x].value!=tuaprimaselect.value) 
        tuasecondaselect.options[tuasecondaselect.options.length]=new
Option(objs[x].text,objs[x].value);
ripeti onchange della select 2 per popolare la 3
andrebbe gestito il disabled per la 2 e 3 (onload) e disattivato onchange
della 1-2.
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.