C'è questo metodo (forse esistono altri più semplici)
Mi hai detto che usi ASP. Spiacente non lo conosco. Comunque l'esempio qui sotto funziona con PHP ma non penso ci siano problemi.
Basta sapere che il file test2195b.php stampa a video il contenuto delle variabili di post.
In questo esempio ho selezionato 10000, 30000 e 50000, i cui relativi valori sono 1, 3 e 5 ( vedere select la cui id è "s1" ).codice:Array ( [s] => Array ( [0] => 1 [1] => 3 [2] => 5 ) )
Nella funzione preSub(aForm) creo per ogni opzione di 's2' un elemento "hidden" che assegno al form. Questi elementi hanno la forma di un elemento di un array (s[0] per il primo elemento, s[1] per il secondo, etc... ) e vengono trasmessi alla pagina test2195b.php tramite il metodo "post".
File : test2195b.phpcodice:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <script language="JavaScript" type="text/javascript"> <!-- function sposta(sel1,sel2) { if (sel1.selectedIndex < 0) { return; } // if (sel1.selectedIndex < 0) //-------- Ricavo la riga selezionata var oCurOption = sel1.options.item(sel1.selectedIndex); //-------- Creo una nuova opzione var oOption = document.createElement("OPTION"); //-------- La aggiungo alla seconda select sel2.options.add(oOption); //-------- Assegno i valori della prima select alla seconda oOption.value = oCurOption.value; oOption.text = oCurOption.text ; //-------- Elimino la riga spostata elimina(sel1); } // function sposta(sel1,sel2) function elimina(unSelect) { if (unSelect.selectedIndex < 0) { return; } // if (unSelect.selectedIndex < 0) unSelect.options.remove(unSelect.selectedIndex) } // function elimina(unSelect) function preSub(aForm) { indice = 0; oSelect = document.getElementById('s2'); nbElem = oSelect.length; for (i=0;i<nbElem;i++) { curOption = oSelect.options.item(i); var hiddenVar = document.createElement('INPUT'); hiddenVar.name = 's['+indice+']'; hiddenVar.type = 'hidden'; hiddenVar.value = curOption.value; aForm.appendChild(hiddenVar); indice++; } // for (i=0;i<nbElem;i++) return true; } // function preSub() //--> </script> </head> <body> <form name="myform" action="test2195b.php" method="post" onsubmit="return preSub(this)"> <select id="s1" size="5" > <option value="1">10000</option> <option value="2">20000</option> <option value="3">30000</option> <option value="4">40000</option> <option value="5">50000</option> <option value="6">60000</option> <option value="7">70000</option> <option value="8">80000</option> <option value="9">90000</option> </select> <input type="button" value=">" onclick="sposta(document.getElementById('s1'),document.getElementById('s2'))"> <input type="button" value="<" onclick="sposta(document.getElementById('s2'),document.getElementById('s1'))"> <select id="s2" name="s2" size="5" multiple="true" > </select> <input type="button" value="-" onclick="elimina(document.getElementById('s2'))"> <input type="submit" value="Submit"> </form> </body> </html>
codice:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <?php print_r ($_POST); ?> </body> </html>


Rispondi quotando