Bonjour à tous,

Depuis plusieurs jours je pédale pour résoudre le pb suivant.

J'ai lu avec intérêt les articles sur les menus déroulants et l' "include" en PHP, mais je n'ai pas trouvé la réponse à ma question :

Lorsque je clique sur le menu 3 de mon déroulant comment faire pour modifier le contenu central de la page qui est compris entre <div id="content">..... </div> que dois-je écrire dans la balise onClick du lien 3 (menu 3) ? Dois-je recharger la page complètement ?

D'avance merci de vos conseils
Salut,

Oui, il faut recharger la page entièrement. Si tu utilises PHP, le lien "menu 3" doit pointer vers une URL du type http://www.exemple.com/index.php?page=3 (ce qui se fait grâce à l'attribut href, et pas onclick qui sert à exécuter un script JavaScript) :
<a href="http://www.exemple.com/index.php?page=3" title="Aller à la page 3 !">menu 3</a>


Lorsque quelqu'un clique sur ce lien, le navigateur envoie une requête au serveur, dans laquelle se trouve une variable "page" qui contient le numéro de la page à afficher, "3".

PHP récupère cette variable, et l'appelle $_GET['page']. Ce qui veut dire que le script connait le numéro de la page à afficher, il reste à lui dire comment l'exploiter. Si tu fais un include pour insérer le contenu central de la page, tu peux gérer le fichier à inclure en fonction de cette valeur. Par exemple :
<?php
  $pages_disponibles = array(
    0 => "accueil.html",
    1 => "produits.html",
    2 => "références.html",
    3 => "contact.html"
  ) ;
  if (isset($_GET['page']) && is_file($pages_disponibles[$_GET['page']]))
  {
    // $_GET['page'] existe et dirige vers un fichier présent sur le serveur,
    // donc on peut l'utiliser pour faire l'include : 
    include($pages_disponibles[$GET['page']]);
  }
  else {
    // Ça n'a pas fonctionné, on appelle la page d'accueil :
    include($pages_disponibles[0];);
    // include("accueil.html"); donne le même résultat
  }
?>
Attention, c'est juste un exemple de principe, je n'ai pas testé, et ce n'est pas complet Smiley cligne
Merci pour ta réponse hyper speed et fonctionnelle.
C'est bien ce que je pensais, la seule et unique soluce est le rechargement de page entière.

Je regarde ceci ce soir et te tiens informé de la suite.

Bonne soirée.
bronson a écrit :
Merci pour ta réponse hyper speed et fonctionnelle.
De rien Smiley cligne
a écrit :
C'est bien ce que je pensais, la seule et unique soluce est le rechargement de page entière.
Pour être précis, ce n'est pas exact. Il est possible de ne recharger qu'une partie de la page, en utilisant XmlHttpRequest, qui permet d'interroger le serveur et de modifier la page en utilisant JavaScript.

Mais ce n'est pas approprié pour mettre à jour le contenu principal d'une page, car cela pose de sérieux problèmes d'accessibilité et d'ergonomie des sites (inutilisable sans JS, casse l'historique du navigateur, etc)
Thomas D. a écrit :
De rien Smiley cligne C'est bien ce que je pensais, la seule et unique soluce est le rechargement de page entière.
Pour être précis, ce n'est pas exact. Il est possible de ne recharger qu'une partie de la page, en utilisant XmlHttpRequest, qui permet d'interroger le serveur et de modifier la page en utilisant JavaScript.

Mais ce n'est pas approprié pour mettre à jour le contenu principal d'une page, car cela pose de sérieux problèmes d'accessibilité et d'ergonomie des sites (inutilisable sans JS, casse l'historique du navigateur, etc)

Bonsoir,

Super ton truc, j'ai réglé mon pb en 2 coups de cuillère à pot. Encore merci.

Sais-tu ou je peux trouver de l'infos sur XmlHttpReques, j'ai fouillé sur le Web sans vraiment comprendre, mais ceci me semble intéressant vu que ca s'exécute coté client.

Bonne soirée
Salut,

Fais des recherches sur "AJAX", tu devrais trouver plus d'infos. Mais je rappelle que c'est à manier avec précaution, et en connaissance de cause Smiley cligne
Thomas D. a écrit :
Salut,

Fais des recherches sur "AJAX", tu devrais trouver plus d'infos. Mais je rappelle que c'est à manier avec précaution, et en connaissance de cause Smiley cligne


Merci pour l'avertissement

Bonne journée