Ok, forse ci sono...
allora, tu hai la funzione controllaCheckbox che restituisce un array "elenco_selezionati" in cui hai degli oggetti (i checkbox spuntati). A te servono gli id di questi oggetti, giusto? Bene, se non l'hai già fatto, aggiungi alla fine (ma all'interno) della funzione questi due cicli for:

for (i=0; i<elenco_selezionati.length; i++) {
elenco_selezionati[i] = elenco_selezionati[i].getAttribute("id");
}

Ora hai un vettore con gli id. Il problema della funzione makePOSTRequest è che non legge soltanto il contenuto del vettore, ma anche gli indici, quindi:

var stringa_post = "";
for (i=0; i<elenco_selezionati.length-1; i++) {
stringa_post = stringa_post + i + "=" + elenco_selezionati[i] + "&";
}
stringa_post = stringa_post + (elenco_selezionati.length - 1) + "=" + elenco_selezionati[elenco_selezionati.length-1];

abbiamo creato una stringa contenente sia gli indici, sia gli id.
Potevo fare il tutto in un unico passaggio, però così forse si capisce qualcosina di più...

Ora nell'action del form metti:
action="javascript:makePOSTRequest('post.php',stri nga_post);" (java-script senza il trattino ... è questo forum che lo mette in automatico)

Adesso non so come tu possa utilizzare questa stringa che ti è stata passata, ma lì dentro hai gli indici da 0 a n con i corrispondenti id...
Se vuoi ravanarci su, puoi andare a modificare, all'interno della funzione alertContents(), la variabile "result"... E' lì che verrà memorizzata la tua stringa_post.

Dovrebbe essere tutto...

Se invece decidi di abbandonare AJAX (solo in questo caso, eh?), forse ho in mente una soluzione più semplice...