Ciao,

in realtà AJAX è un metodo di javascript, quindi tutto dipende dalla tua conoscenza di javascript.

per quanto riguarda il tuo caso i passi da compiere sono questi:

In un file JS a parte oppure nell'head della pagina inserisci il codice che ti ho linkato

Prima della chiusura dell'head:
codice:
window.onload = function () {
   var macroSelect = document.getElementById('macro');
   macroSelect.onchange = function () {
      // inizializza l'oggetto richiesta che gestisce la chiamata AJAX con il percorso al file php che gestisce la generazione delle select dinamiche
      var richiesta = new ajaxObject('select.php');

      // quando la richiesta è conclusa inserisce le option generate nella select con id=cat
      richiesta.callback = function(responseText) {         document.getElementById('cat').innerHTML=responseText;
};


      // invia tramite POST il valore corrente della select macro
      richiesta.update('macrovalue='+this.value,'POST');
    };

};
Poi crei il file select.php e gli inserisci dentro il codice php che deve generare le option per la select "cat" e cambi la queery php inserendo come valore di cat da ricercare:

codice:
WHERE cat='".$_POST['macrovalue']."'
per quanto riguarda una guida ad AJAX prova a vedere qui sul sito.
http://javascript.html.it/guide/leggi/95/guida-ajax/