Salve a tutti, premetto che sono programmatore php e mi sto affacciando per la prima volta ad Ajax, avrei bisogno di creare due select, categoria e sotto categoria, a seconda della categoria scelta, la seconda select mi restituisce le sub cat ad essa appartenenti, ma purtroppo non riesco, ormai è una settimana che ci combatto ma nulla, sono arrivato ad un punto che a volte lo guardo e nn so neanche cosa sto scrivendo
!!! Vabbhè, ecco il codice, è un codice prelevato da questo sito e riadattato il qualche modo ovviamente sbagliato
:
codice:
echo'
<select name="cat" size="1" onChange="redirect(this.options[this.selectedIndex].value)">
<option value="0">Seleziona una categoria</option>';
$subcat=array();
$subnum='-1';
$catnum=array();
$countcat='0';
$result = mysql_query("select * from cat ORDER BY nome ASC");
while($riga = mysql_fetch_array($result))
{
$cid = $riga['cid'];
$cat = $riga['nome'];
$countcat++;
$catnum[$cat]=$countcat;
$catnumarr = $catnum[$cat];
echo'<option value="'.$countcat.'">'.$cat.'</option>';
$result1 = mysql_query("select * from sub_cat WHERE cid='$cid' ORDER BY nome ASC");
while($riga1 = mysql_fetch_array($result1))
{
$cid1 = $riga1['cid'];
$sub_cat = $riga1['nome'];
$subnum++;
$subcat[$subnum]=$sub_cat;
$resultn = mysql_query("select count(*) as num from sub_cat WHERE cid='$cid'");
while($rigan = mysql_fetch_array($resultn))
{
$num = $rigan['num'];
}
}
}
echo' </select>
<select name="sub_cat" size="1">
<option value="null">Seleziona una categoria</option>
</select>
<script type="text/javascript" language="JavaScript">
<!--
var groups=document.doublecombo.cat.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("Seleziona una categoria", "0");';
$nam='-1';
for($n=0;$n<$num;$n++){
$nam++;
echo'group['.$catnumarr.']['.$n.']=new Option("'.$subcat[$nam].'", "'.$nam.'");';
}
echo' var temp=document.doublecombo.sub_cat
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>';
premetto che il form si chiama doublecombo.
Grazie anticipatamente