Ciao a tutti, devo realizzare un form con due campi select dinamici, ho cercato un po' sul forum e avrei trovato quello che fa per me in questo tread
Diciamo che sarebbe quello che serve a me, e diciamo pure che sarei riuscito ad adattarlo al mio scopo, si puo' vedere un esempio qui
Il mio problema e' che a volte potrebbero esserci delle non uguaglianze tra il listino e le sottocategorie, mi spiego meglio, nella pagina di esempio se si scorre sulla prima select fino a prova nell'altra select non compare nulla (la categoria prova non ha sottocategorie...) e questo genera un piccolo errore quando uno preme il tasto MODIFICA (Proprieta' o metodo non supportati dall'oggetto...)
Come potrei ovviare al problema, magari facendo comparire nell'altro campo select solo il nome della categoria duplicato se la categoria non contiene sottocategorie ?
Vi posto il codice della pagina prova.php
codice:
<HTML>
<HEAD>
<script language="javascript">
function objProvincia(codice,nome){
this.codice=codice
this.nome=nome
}
function objRegione(nome,province){
this.nome = nome
this.province = province
}
var regioni = new Array()
<?php
$q = mysql_query("SELECT * FROM listino WHERE attivo = '0' ORDER BY nome_listino");
while($r = mysql_fetch_assoc($q)) { //scandisci il listino
print "province = new Array();";
$q2 = mysql_query("SELECT * FROM sottocategorie WHERE categoria = '$r[nome_listino]' AND attivo_sot = '0' ORDER BY nome_sottocategoria");
while($r2 = mysql_fetch_assoc($q2)) { //scandisci tutte le sottocategorie
print "province[province.length]=new objProvincia(\"$r2[id]\",\"$r2[nome_sottocategoria]\");";
}
print "regioni[regioni.length]=new objRegione(\"$r[nome_listino]\",province);";
}
?>
function creaRegioni(){
oo = document.NomeForm.regione.options
for(i=0;i<regioni.length;i++)
oo[oo.length]=new Option(regioni[i].nome,regioni[i].nome)
}
function svuotaOption(oo){
for(i=(oo.length-1);i>=0;i--)
oo[i]=null
}
function filtraProvince(reg){
oo = document.NomeForm.provincia.options
svuotaOption(oo)
if(reg=='')oo[oo.length]=new Option('Selezionare la Regione','')
else{
for(i=0;i<regioni.length;i++)
if(regioni[i].nome==reg){
pro = regioni[i].province
for(j=0;j<pro.length;j++)
oo[oo.length]=new Option(pro[j].nome,pro[j].codice)
i=regioni.length
}
}
}
function vai(ff){
pro = ff.provincia.options[ff.provincia.selectedIndex].value
}
</script>
</HEAD>
<BODY onload="creaRegioni()">
<form action="prova11.php" method="post" name="NomeForm">
<select name="regione" onchange="filtraProvince(this.options[this.selectedIndex].value)">
<option value="">Selezionare...</option>
<option value="">---------------</option>
</select>
<select name="provincia">
<option value="">Selezionare la Regione</option>
</select>
<input type="submit" name="NomeForm" value="Modifica" onclick="vai(this.form)">
</form>
</BODY>
</HTML>
Il fatto e' che mi da proprio fastidio che compaia un errore anche se impercettibile per un istante al clik del bottone.
Aiutoooo...E grazie 1000 per la pazienza !
Micky