Essendo un codice che ho prelevato da internet già pronto da modificare, credo che ti riferisca a questa funzione, l'unica che ho trovato come rimando nel codice JS. Ti posto l'intera parte interessata, tralasciando quella che contiene i singoli dati da pescare:
Codice HTML:
displaywhenempty=""
valuewhenempty=-1
displaywhennotempty="-select-"
valuewhennotempty=0
function change(currentbox) {
numb = currentbox.id.split("_");
currentbox = numb[1];
i=parseInt(currentbox)+1
// Svuoto tutte le combo box seguendo l'attuale
// I empty all combo boxes following the current one
while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
(document.getElementById("combo_"+i)!=null)) {
son = document.getElementById("combo_"+i);
// I empty all options except the first one (it isn't allowed)
for (m=son.options.length-1;m>0;m--) son.options[m]=null;
// I reset the first option
son.options[0]=new Option(displaywhenempty,valuewhenempty)
i=i+1
}
// ora creo la stringa con il nome di base ("stringa"), ad es. "data_1_0"
// con la quale aggiungerò _0,_1,_2,_3 etc- per ottenere il nome della combo box da riempire
// now I create the string with the "base" name ("stringa"), ie. "data_1_0"
// to which I'll add _0,_1,_2,_3 etc to obtain the name of the combo box to fill
stringa='data'
i=0
while ((eval("typeof(document.getElementById(\"combo_"+i+"\"))!='undefined'")) &&
(document.getElementById("combo_"+i)!=null)) {
eval("stringa=stringa+'_'+document.getElementById(\"combo_"+i+"\").selectedIndex")
if (i==currentbox) break;
i=i+1
}
// riempiendo il combo "figlio" (se esiste)
// filling the "son" combo (if exists)
following=parseInt(currentbox)+1
if ((eval("typeof(document.getElementById(\"combo_"+following+"\"))!='undefined'")) &&
(document.getElementById("combo_"+following)!=null)) {
son = document.getElementById("combo_"+following);
stringa=stringa+"_"
i=0
while ((eval("typeof("+stringa+i+")!='undefined'")) || (i==0)) {
// if there are no options, I empty the first option of the "son" combo
// otherwise I put "-select-" in it
if ((i==0) && eval("typeof("+stringa+"0)=='undefined'"))
if (eval("typeof("+stringa+"1)=='undefined'"))
eval("son.options[0]=new Option(displaywhenempty,valuewhenempty)")
else
eval("son.options[0]=new Option(displaywhennotempty,valuewhennotempty)")
else
eval("son.options["+i+"]=new Option("+stringa+i+".text,"+stringa+i+".value)")
i=i+1
}
//son.focus()
i=1
combostatus=''
cstatus=stringa.split("_")
while (cstatus[i]!=null) {
combostatus=combostatus+cstatus[i]
i=i+1
}
return combostatus;
}
}
//-->
</script>
-
No niente, un errore mio, funziona tutto perfettamente: in pratica, il problema era proprio nel codice dei dati selezionati. Ad esempio ho questo:
Codice HTML:
data_1_1_1_1 = new Option("AM2+ Gigabyte GA-MA770-UD3","AM2+ Gigabyte GA-MA770-UD3")
data_1_1_1_2 = new Option("AM3 Gigabyte GA-MA790XT-UD4P", "%")
in pratica il value che pesca il codice php è quello contenuto nei secondi apici, non nei primi. Per cui, nel primo caso mi restituisce il nome corretto, nel secondo caso mi restituisce un % che è comunque tecnicamente corretto ma non per me ovviamente.
Ovviamente ho perso 1 giorno per risolvere un problema che qualsiasi programmatore non avrebbe neanche avuto. Vabbè capita quando si è inesperti.
Grazie cmq e Buon Anno a tutti, ora posso andare a festeggiare in tranquillità!