La fonction Innerhtml n'inclut pas tout ce qui est <script></script>.
Parce que comme son nom l'indique (ou pas), c'est pour mettre des balises HTML dans du HTML.
Et en HTML la balise <script></script> ou <?php ?>, ça rend du vide. Donc quoi que tu mettes dans innerhtml tu auras du vide . (EDIT : Après réflexion, je pense que j'ai dit une connerie la balise php doit passer et être interprété correctement côté serveur mais uniquement à l'initialisation de la page.)
Ensuite à ton problème il y a deux solutions :
1. solution simple :
Tu charges quand même le texte lié à une technologie à l'initialisation, mais par defaut tu mets le style de ce div à 'none'. Ca veut dire que ton texte est là mais pas affiché. Et au moment ou tu cliques sur le bouton tu passes le style à 'block' ou 'inline' et ça va afficher le contenu.
C'est une solution pour l'affichage, mais tu chargeras quand même tout ton fichier au début.
2. Utiliser Ajax comme ça déjà été dit.
Là ça permet réellement d' interroger le serveur à nouveau sans tout recharger. Et pour ça il y a des tutoriaux qui traînent ici et là sur le net, mais c'est un peu plus complexe (pas bcp plus).
PS : Il faut garder en mémoire que tout ce qui est PHP est généré au moment ou tu charges ta page. Le serveur assemble une page avec tous les include possible et inimaginable. Mais une fois que ta page a été envoyé, le serveur ne fait plus rien. Donc tu peux pas y accéder aussi simplement qu'en appellant une fonction javascript qui va inclure du PHP. Il faut renvoyer une requête HTTP pour réveiller le serveur. Soit en utilisant classiquement un formulaire, soit en utilisant Ajax qui fait précisemment ça.
Mais de façon général:
javascript : executé du côté client
php : executé côté serveur.
Et par défaut (sans ajax), c'est pas possible de les faire communiquer sans recharger la page.
Parce que comme son nom l'indique (ou pas), c'est pour mettre des balises HTML dans du HTML.
Et en HTML la balise <script></script> ou <?php ?>, ça rend du vide. Donc quoi que tu mettes dans innerhtml tu auras du vide . (EDIT : Après réflexion, je pense que j'ai dit une connerie la balise php doit passer et être interprété correctement côté serveur mais uniquement à l'initialisation de la page.)
Ensuite à ton problème il y a deux solutions :
1. solution simple :
Tu charges quand même le texte lié à une technologie à l'initialisation, mais par defaut tu mets le style de ce div à 'none'. Ca veut dire que ton texte est là mais pas affiché. Et au moment ou tu cliques sur le bouton tu passes le style à 'block' ou 'inline' et ça va afficher le contenu.
C'est une solution pour l'affichage, mais tu chargeras quand même tout ton fichier au début.
2. Utiliser Ajax comme ça déjà été dit.
Là ça permet réellement d' interroger le serveur à nouveau sans tout recharger. Et pour ça il y a des tutoriaux qui traînent ici et là sur le net, mais c'est un peu plus complexe (pas bcp plus).
PS : Il faut garder en mémoire que tout ce qui est PHP est généré au moment ou tu charges ta page. Le serveur assemble une page avec tous les include possible et inimaginable. Mais une fois que ta page a été envoyé, le serveur ne fait plus rien. Donc tu peux pas y accéder aussi simplement qu'en appellant une fonction javascript qui va inclure du PHP. Il faut renvoyer une requête HTTP pour réveiller le serveur. Soit en utilisant classiquement un formulaire, soit en utilisant Ajax qui fait précisemment ça.
Mais de façon général:
javascript : executé du côté client
php : executé côté serveur.
Et par défaut (sans ajax), c'est pas possible de les faire communiquer sans recharger la page.