dopo aver fatto una piccola ricerca:



Originariamente inviato da 13manuel84
beh, la cosa la puoi fare così (come faccio sempre io): nel primo menù prendi tutte le categorie presenti nel db, e nel secondo tramite un'altra query prendi solo le sottocategorie appartenenti alla categoria selezionata; per fare questo io uso due tabelle, una per la categorie (id_categoria, tipo_categoria) e una per le gruppo(id_gruppo, tipo_gruppo, id_categoria), e per realizzarlo è un misto di php, sql e js.

Menù per le categorie:
codice:
<select name="categoria" onChange="inviaCambiamenti()">
<?
 query="SELECT * FROM categoria order by 'tipo_categoria'";
 $result = mysql_query($query);
 echo "<option value=\"\">Seleziona</option>";
 while($row = mysql_fetch_assoc($result))
 {
  if(!empty($categoria))
  {
   if ($row[id_categoria]<>$categoria)
   {
    echo '<option value="'.$row[id_categoria].'" >'.$row[tipo_categoria].'</option>';
   }
   else					
   {
    echo '<option value="'.$row[id_categoria].'" SELECTED>'.$row[tipo_categoria].'</option>';			
   }
  }
  else 
  {
   echo '<option value="'.$row[id_categoria].'">'.$row[tipo_categoria].'</option>';
  }
}
?>
</select>
Menù per le sottocategorie:
codice:
<select name="gruppo">
<?
  $query="SELECT * FROM gruppo WHERE id_categoria='$categoria' order by 'tipo_gruppo'";
  $result = mysql_query($query);
  echo "<option value=\"\">Seleziona</option>";
  while($row = mysql_fetch_assoc($result))
  {
   if(!empty($gruppo))
   {
    if ($row[id_gruppo]<>$gruppo)
    {
	echo '<option value="'.$row[id_gruppo].'" >'.$row[tipo_gruppo].'</option>';
    }
    else					
    {
     echo '<option value="'.$row[id_gruppo].'" SELECTED>'.$row[tipo_gruppo].'</option>';
    }
   }
   else 
   {
    echo '<option value="'.$row[id_gruppo].'">'.$row[tipo_gruppo].'</option>';
   }
}
?>
</select>
n.b. il codice vale per la struttura delle tabelle che ho usato io, se la tua è diversa ricordati di modificare leggermente il codice.

la funzione che vedi (onChange="inviaCambiamenti()") è una funzione js che ricarica la pagina inviando il valore della categoria selezionata, in modo da poter fare la seconda query; la devi mettere nell'head dell'html:

codice:
<script language="javascript">

function inviaCambiamenti(){
  document.form1.action = "<?php echo $PHP_SELF; ?>";
  document.form1.submit();
}

</script>
form1 è il nome della form in cui hai messo i menù, se è diverso cambialo pure nella funzione.

Spero di esermi spiegato bene e di esserti stato d'aiuto!

ovviamente modifica i vari campi a te necessari