ok vi posto il tutto allora.
nella pagina oltre a quella funzione ho le due select:
Codice PHP:
                <td>Sezione:</td>
                <td>
                    <select name="sezione" onchange="changeSelect(this.value);" id="sezione">
                        <option value="*">*</option>
                        <?php
                        
foreach (selectSection () as $rowSection) {
                            echo 
"<option value='" $rowSection['sezione_id'] . "'>" $rowSection['sezione_nome'] . "</option>";
                        }
                        
?>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Categoria:</td>
                <td>
                    <select name="categoria" id="categoria">
                        <option value='*'>*</option>
                    </select>
                </td>
            </tr>
selectSection() è la funzione che riempie la sezione eseguendo una query.
categoria è l'id della omonima select.
nella funziona Ajax invece viene richiamato: xmlhttp.open("GET","home-cat.php?sid=" + str, true);
che è questa pagina qua:
Codice PHP:
<?php

$sid 
$_GET['sid'];
$result $config->getPdo()->query("SELECT * FROM categorie WHERE sezione_FK=" $sid " ORDER BY categoria_nome");
foreach (
$result as $rowCat) {
    echo 
"<option value='" $rowCat['categoria_id'] . "'>" $rowCat['categoria_nome'] . "</option>";
}
?>