Io invece penso che confonda il recupero dal database e i valori POST, dove oltretutto $fields è aggiornato con il valore $residente_a precedente (che potrebbe essere assente via html).
Comunque sembra corretto chiamare #residenteA perché in jquery è quel valore ID.
In questo codice è presente https://www.iprogrammatori.it/forum-programmazione/php/compilare-moduli-in-un-file-pdf-da-php-t51981.html#p8705593
PHP recupera l'ultimo name se più di uno è identico al precedente, mentre HTML (inoltro dati POST) sarebbe qualcosa residente_a=palermo&residente_a=palermo (teoricamente il secondo è il campo hidden se dopo il campo input).
Poiché action è una stringa vuota può voler dire la pagina attuale (diversa questione sotto proxy che potrebbe non riuscire rinviare i valori), inoltre è la prima pagina del browser visualizzata (pre inoltro dati POST) e dopo l'inoltro è sempre uguale. Significa con pre inoltro dati $_POST['residente_a'] mai valorizzato e relativo Warnings errore in php che ti avvisa variabile indefinita.
Inviare i dati senza ricaricare la pagina (esempio tramite Ajax di jquery) è effettuare una richiesta POST con inoltro dei dati, li è presente anche residente_a