Javascript, c'est du confort utilisateur. Cela permet de faire plein de traitement directement dans la page pour éviter que l'utilisateur ne doive patienter le temps d'un rechargement. C'est de la capture d'événement, de la mise à jour de champs, du calcul, de la vérification de données, etc. Tout ça uniquement pour une utilisation plus sympa, plus jolie, plus agréable.
Ce n'est rien de plus. Il peut être contourné, désactivé, ou bricolé et ne doit donc servir à rien d'autre
PHP quant à lui, c'est du costaud. C'est un peu le videur à l'entrée de la boite de nuit qui va rejeter les données falsifiée qu'ont des basquette aux pieds, et renvoyer les éléments dynamique qu'on peut pas tout charger dans une page d'un coup d'un seul sans que le navigateur appel à l'aide

Et puis faut pas l'chercher, c'est lui qu'à les clés de la base de données
Ajax, c'est du javascript. L'intérêt, c'est qu'il est très pote avec le videur de l'entrée et qu'il peut aller lui demander des tuyaux, des verifs en base, des contrôles de carte d'identité, etc. et qu'il revient côté client avec la réponse de php : "si t'as pas de carte de membre, tu rentres pas"
Bref, tout ça pour dire qu'il n'y a absolument aucune règle en la matière, si ce n'est "ne jamais faire confiance aux données soumises par l'utilisateur, qu'elles soient contrôlées ou non au préalable par javascript, c'est le boulot de php. A partir de là, tu peux en mettre des tartines tout ce qui compte c'est le confort

(enfin pas trop de tartines non plus parce que quand ça rame pour s'exécuter, c'est pas confortable

)