Ciao,
il php è un linguaggio di programmazione server-side, mentre il javascript è client-side, quindi una delle differenze sostanziali tra php e javascript è che il primo lavora sul server, mentre il secondo lavora sul browser dell'utente, quindi il php per apportare una modifica deve inviare una risposta al browser, quindi la pagina viene ricaricata.
Per questo i controlli, se non vuoi ricaricare la pagina li devi eseguire mendiante javascript, però è buona norma fare i controlli anche con il php, altrimenti basta disabilitare il javascript ed i controlli non vengono eseguiti, quindi possovo essere inviati dati sbagliati o incompleti.