Ho trovato questo via internet:
Lo posto in caso qualcuno ne avesse necessità oppure voglia darmi il suo parere

Codice PHP:
<?PHP 
        
// include connessione database
        
include("xxx.php");

//.............LETTURA DEL CODICE CATEGORIA.......... 
@$Categoria=$_GET['Categoria']; 

//.............1°SELECT........... 
$leggi_categoria mysql_query("SELECT * FROM Categorie ORDER BY Categoria"); 
echo 
"<select name='Categoria' onchange=\"reload(this.form)\">
       <option value=''>Scegli...</option>"

       
while (
$row1 mysql_fetch_array($leggi_categoria))  
{  
    if (
$row1['IDCategoria']==@$Categoria
    { 
    echo 
"<option selected value='$row1[IDCategoria]'>$row1[Categoria]</option>"."
"

    } 
    else 
    { 
    echo 
"<option value='$row1[IDCategoria]'>$row1[Categoria]</option>"
    } 

echo 
"</select>"

//.............2°SELECT..........         
$leggi_provincia mysql_query("SELECT * FROM ProvinceCategorie WHERE IDCategoria='$Categoria' ORDER BY IDCategoria"); 
echo 
"<select name='Citta'>
       <option value=''>Scegli Citt&agrave;...</option>"

       
while (
$row2 mysql_fetch_array($leggi_provincia))  
    {  
        echo
"<option value=$row2[IDProvincia]>$row2[Provincia]</option>";  
    } 
echo 
"</select>";     
?>

<SCRIPT language=JavaScript>
function reload(form)
{
var val=form.Categoria.options[form.Categoria.options.selectedIndex].value;
self.location='?Categoria=' + val ;
}
</script>
Il brutto è che ricarica la pagina però funziona su tutti i browser