J'utilise pas la balise
optgroup, mais sa première utilité est de créer des groupes séparés dans une liste. En gros, c'est juste un séparateur.
Si tu veux utiliser le PHP pour ton truc (ce qui, à mon avis n'est pas une bonne solution), il va chaque fois falloir recharger la page pour prendre en compte la sélection.
Le javascript est à mon avis la meilleure solution. Je ne m'y connais pas beaucoup en JS. Mais deux solution qui me viennent à l'esprit, c'est :
1. Utiliser un remplacement de données (dans le style InnerHTML)
2. Utiliser un remplacement de style (modifier le style CSS pour afficher ou cacher des options). Cette dernière solution, je ne sais pas si elle peut fonctionner.
Tu peux aussi éventuellement utiliser de l'AJAX, mais sans connaissances JS ça va être chaud.
Il y a peut-être aussi une solution en CSS pur, en utilisant les métabalises, mais là faudra cherche un peu
