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