questo genere di cose si fanno con js

con php invece devi salvare l'array $_POST in sessione e in caso di errore/i salvi anche quelli in sessione e fai un redirect
dopodichè puoi precompilare i campi e stampare gli errori dato che il tutto è salvato in sessione.

cmq la cosa non è semplicissima