Newsgroup: it.comp.lang.javascript
Titolo: Valorizzare Hidden - problemi con Firefox

Ciao a tutti,
stò realizzando un piccolo scriptino che date due SELECT MULTIPLE ti
permette di passare dei valori da una select all'altra..
Il problema è che dovrei passare in POST i valori della seconda SELECT
e invece di farli rimanere selezionati inserisco gli ID che mi servono
in un campo HIDDEN..
il tutto funziona con Explore mentre con Firefox non ne vuole sapere di
valorizzare il campo hidden..
Ecco. il codice
function togli(form) {
	arr = new Array();
	Sel = formArticolo.categorie;
	numSel = Sel.options.length;
	for(i=0;i<numSel;i++) {
		if (Sel.options[i].selected) { Sel.options[i] = null; continue; }
		document.formArticolo.id_categoria.value += Sel[i].value + ",";
	}
}
function sposta(form){
	partenza=form.categorie_disponibili;
	arrivo=form.categorie;
	sel=new Array();
	//per ogni opzione di partenza controlla:
	for(i=0;i<partenza.options.length;i++){
		//se è selezionata, mettila nell'array sel
		if(partenza.options[i].selected){
			partenza.options[i].selected=false;
			sel.push(partenza.options[i]);
		}
	}
	//Per ogni valore in sel
	for(i=0;i<sel.length;i++){
		objHTTP = getXMLHttp();
		objHTTP.open("GET", "catRoot.php?id="+sel[i].value, "false");
		objHTTP.onreadystatechange = function() {
		  if (objHTTP.readyState == 4) {
			  var opt = document.createElement('option');
			  opt.text = objHTTP.responseText;
			  opt.value = objHTTP.responseText;
			  try {
				arrivo.add(opt, null);
			  }catch (ex) {
				arrivo.add(opt);
			  }finally {
				document.formArticolo.id_categoria.value += sel[i].value + ",";
			  }
		  }
		}
		objHTTP.send(null);
	}
}
function getXMLHttp() {
var xmlhttp = null;
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
 if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
   xmlhttp = new XMLHttpRequest();
 }
return xmlhttp
}
Qualcuno mi sà aiutare?

 function getXMLHttp() {
[CUT]
Non mi piace molto: quel try/catch esclude a priori i vecchi browser, e
secondo me ti inchioda IE-Mac.
http://www.criosoftware.it/default36.aspx
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.

Ciao grazie Cristian!
Ho cambiato un pò il codice .. e messo un paio di alert per vedere se
viene valorizzato stò HIDDEN ma niente... su firefox niente..
Ti riposto il codice modificato
function togli() {
	arr = new Array();
	Sel = document.forms['formArticolo'].categorie;
	numSel = Sel.options.length;
	for(i=0;i<numSel;i++) {
		if (Sel.options[i].selected) { Sel.options[i] = null; continue; }
		document.forms['formArticolo'].id_categoria.value += Sel[i].value +
",";
	}
alert(document.forms['formArticolo'].id_categoria.value);
}
function sposta(){
	partenza=document.forms['formArticolo'].categorie_disponibili;
	arrivo=document.forms['formArticolo'].categorie;
	sel=new Array();
	//per ogni opzione di partenza controlla:
	for(i=0;i<partenza.options.length;i++){
		//se è selezionata, mettila nell'array sel
		if(partenza.options[i].selected){
			partenza.options[i].selected=false;
			sel.push(partenza.options[i]);
		}
	}
	//Per ogni valore in sel
	for(i=0;i<sel.length;i++){
		objHTTP = getXMLHttp();
		objHTTP.open("GET", "catRoot.php?id="+sel[i].value, "false");
		objHTTP.onreadystatechange = function() {
		  if (objHTTP.readyState == 4) {
			  var opt = document.createElement('option');
			  opt.text = objHTTP.responseText;
			  opt.value = objHTTP.responseText;
			  try {
				arrivo.add(opt, null);
			  }catch (ex) {
				arrivo.add(opt);
			  }finally {
				document.forms['formArticolo'].id_categoria.value += sel[i].value +
",";
			  }
		  }
		}
		objHTTP.send(null);
	}
alert(document.forms['formArticolo'].id_categoria.value);
}
function getXMLHttp() {
var xmlhttp = null;
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
 if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
   xmlhttp = new XMLHttpRequest();
 }
return xmlhttp
}
<form action="<?=$_SERVER['REQUEST_URI']?>" METHOD="POST"
name="formArticolo">
<input type="hidden" name="id_categoria" value="<?=$categorieHidden?>"
/>
		<select class="formText" name="categorie_disponibili" style="width:
300px; height: 150px" multiple>
			<?=$contents?>
		</select>
		<input type="button" value=" &gt;&gt; " onClick="sposta()" />
		<input type="button" value=" &lt;&lt; " onClick="togli()" />
		<select name="categorie" class="formText" style="width: 300px;
height: 150px" multiple>
<?php if (is_array($cats)) { foreach ($cats as $cat) { ?>
			<option value="<?=$cat[0]?>"><?=get_CAT_root($cat[0])?></option>
<?php } } ?>
		</select>
Questo javascript mi stà facendo impazzire!