Oltre a ciò che hai indicato ti servirà anche Javascript, perché PHP vive solo sul server, quindi non interagisce con il form che sta sul browser dell'utente, gli serve un tramite.

Ciò che devi fare:
- sui campi che ti interessano, quindi cap, città... devi prevedere un evento JS che catturi il fatto che è stato inserito/cambiato un dato, ad esempio onchange, a seconda del tipo di campo
- l'evento di cui sopra deve attivare una funzione Javascript che tramite AJAX (chiedi nella sezione Javascript spiegazioni riguardo AJAX) invii una chiamata asincrona verso uno script PHP
- lo script PHP dovraà ricevere i dati (lo fa esattamente come se fosse un form ad inviarli, quindi post o get, secondo cosa scegli) e in base a tali dati andare a prendere dal DB ciò che deve rispondere, una volta avuto il dato dovrà semplicemente farne l'echo e terminare, se si tratta di una stringa semplice va bene non fare nulla, se invece deve ritornare dei dati complessi, allora meglio convertirli prima in una stringa JSON che sarà più facile da gestire poi in JS
- la chiamata AJAX riceverà il dato e con JS dovrai andare a modificare il campo del form interessato inserendo ciò che hai ottenuto (anche per spiegazioni su questo chiedi nella sezione JS)

Occhio a non creare loop nelle chiamate, per esempio:
1) inserisci una città
2) questo scatena l'evento per andare a prendere il cap
3) prendi il CAP dal server e lo inserisci nel form
4) l'inserimento del CAP nel form scatena l'evento per andare a prendere la città
4) prendi la città ottenuta e la inserisci nel campo città il che ti farebbe tornare al punto 2)

magari prima di inserire/cambiare un dato in un campo, verifica se ciò che vi è riportato è uguale a ciò che ci vuoi mettere, se è uguale non fai niente.