Grazie per avermi risposto.
ho sostituito il codice con i vostri suggerimenti, ma ancora non funziona. l'unico cambiamento è che ora il valore del primo menù non scompare, ma non si popola il secondo menu.

Codice PHP:

<html>

<head>

<script language="javascript">

function inviaCambiamenti(){
$categoria = ((isset($_GET['categoria']))?($_GET['categoria'])null))

document.form1.action = " <?php echo $_SERVER['PHP_SELF'] ; ?>"; 
  document.form1.submit();
}

</script>



</head>




<?




require('connessione.php');



$query="SELECT * FROM categoria order by 'tipo_categoria'";
 
$result mysql_query($query,$connessione) or die("prima query fallita".mysql_error());
?>
<form name="form1">
  


    <select name="categoria" onChange="inviaCambiamenti()">
      <?

 
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: 
    <?
  $query
="SELECT * FROM gruppo WHERE id_categoria='$categoria' order by 'tipo_gruppo'";
  
$result mysql_query($query,$connessione) or die("seconda query fallita".mysql_error());
  
    echo
"
"
;
 print(
" sottocategorie:");
  echo
"
"
;
  
?>
    <select name="gruppo">
      <?

  
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>
  </p>
  

 </p>
</form>

</html>
Qualche aiuto?