Ciao a tutti, sono sicuro che è una cavolata e mi sto perdendo in un bicchier d'acqua, ma vi prego di aiutarmi lo stesso

Allora ho un semplice form con all'interno una select e un pulsante di submit. Se io invio il form tramite il pulsante invia mi funziona tutto, se io faccio l'onchange e cambio opzione, facendo degli echo noto che il cambio non avviene nel submit, mi spiego con il codice alla mano

Codice PHP:
<?
echo $_POST['cerca_stato']; //qua all onchange mi stampa il valore
if(isset($_POST['Salva'])){
echo 
$_POST['cerca_stato']; //qua all onchange NON MI STAMPA IL VALORE
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" name='lista' method="POST">
..
..
<tr align="center"><center><input type="submit" name="Salva" value="Salva"></center></tr>
..
..
<select name="cerca_stato" onchange="lista.submit()">
  <option value="">Tutti</option>
  <?     $query mysql_query("..."$link) or die(mysql_error($link));
    while (
$rsmysql_fetch_array($query)){ 
        
$selected '';
        if (
$rs['id'] == $_POST['cerca_stato']) $selected ' selected';
  
?>
<option value="<?=$rs['id']?>"<?=$selected?>><?=ucfirst($rs['descrizione'])?></option>
  <?     ?>
</select>
..
..
</form>
Ho già provato con this.form.submit.

Grazie a tutti!