include et menu

include et menu - PHP - Programmation

Marsh Posté le 18-07-2005 à 13:17:55    

salut,
 
Sur chaque page de mon site j ai mis un include(menu.html) car on me la conseiller à la place des frame.
Sa fonctionne mais le truc c est que sur certaine de mes pages je recupere des donnée dans ma base et le temps que la page charge les données ,je vois apparaitre la page du menu.( c est pas tres esthetique).
J ai inclus mon menu comme cela en haut de mes pages

Code :
  1. <?php
  2. session_start();
  3.          include('menu.html');
  4. ?>
  5. <html>
  6. <head>
  7. <title>


 
Dans ma page menu.html, j ai aussi des  balises <html> </html>
c est correct ?
Est ce normal que sa fait cela le temps du rechargement ou c est du à la page menu ?
 
merci

Reply

Marsh Posté le 18-07-2005 à 13:17:55   

Reply

Marsh Posté le 18-07-2005 à 13:23:32    

Le code de menu.html sera copié a l'endroit ou se trouve l'include.

  • il y aura redondance de <html> tu ne dois pas mettre de balise html et body dans ton menu.
  • Le code de menu.html sera copié HORS de la balise body de ta page principale. Ce n'est pas correct.
  • Puisque ta page menu.html ne contiendra pas de html et de body ... elle ne sera pas une page html valide alors mieux vaut l'appeller menu.inc par exemple plutot que de lui donner une extesion auquel elle ne correspond pas.

Reply

Marsh Posté le 18-07-2005 à 13:41:31    

ma page menu.html
elle contient les balise html , head, body car j eles utilise ,j appel une feuilel de style dans les balise <head> et du javascript dans le body  de la feuille.
Si je te comprends bien, faut que je l appel menu.inc et que je l include dans la balise body ?

Reply

Marsh Posté le 18-07-2005 à 14:58:13    

donny3 a écrit :

ma page menu.html
elle contient les balise html , head, body car j eles utilise ,j appel une feuilel de style dans les balise <head> et du javascript dans le body  de la feuille.
Si je te comprends bien, faut que je l appel menu.inc et que je l include dans la balise body ?


 
Ton menu.html, lorsque tu l'include, tu ne dois pas le voir comme une page, car ce n'en est pas une, c'est juste "du code HTML à insérer là où tu fais l'include". Donc ça n'a aucun sens de lui donner une feuille de style propre ou des fonctions JS propres.


Message édité par sielfried le 18-07-2005 à 14:58:26

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 18-07-2005 à 14:58:27    

Salut  :hello:  
 
je ne sais pas si c'est très orthodoxe comme méthode mais voilà comment j'ai fait :
J'ai ma page normale qui ce compose comme çà :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  4. <head>
  5. <title>Accueil</title>
  6. <?php
  7. include("meta.php" );
  8. include("linkCSS.php" );
  9. include("scripts.php" );
  10. ?>
  11. </head>
  12. <body>
  13.   <div id="navig">
  14.    <div id="logo"></div>
  15.    <div id="menu"><?php include("menu.php" ); ?></div>
  16.   </div>
  17.   <div id="contenu">
  18.    blablabla blablabla etc...
  19.   </div>
  20. </body>
  21. </html>


J'ai donc inclus pas mal de fichiers .php mais en ce qui concerne le menu (fichier menu.php), il se compose comme ceci :

Code :
  1. <ul>
  2.   <li><a href="lien1.html">lien 1</a></li>
  3.   <li><a href="lien2.html">lien 2</a></li>
  4.   <li><a href="lien3.html">lien 3</a></li>
  5. </ul>


Cette portion de code s'intègre exactement à l'endroit où j'ai mis mon include et donc dans la balise <div id="menu">.
 
 [:fafane84]


---------------
Mon Topic de Vente Hardware
Reply

Marsh Posté le 18-07-2005 à 15:00:50    

Bon et bien tu est sur la voie.
Maintenant le div qui englobe le ul est inutile.
autant mettre le id="menu" sur le ul et virer le div englobant.


Message édité par afbilou le 18-07-2005 à 15:01:00
Reply

Marsh Posté le 18-07-2005 à 15:05:56    

afbilou a écrit :

Bon et bien tu est sur la voie.
Maintenant le div qui englobe le ul est inutile.
autant mettre le id="menu" sur le ul et virer le div englobant.


Oui tout à fait exact  [:b-rabbit]  
 
Je suis en train en ce moment de revoir le code d'un de mes sites, car lors de sa conception j'ai eu la main lourde sur les DIV  :lol:  
 
J'en profite aussi pour faire des "include"
 
 [:fafane84]  


---------------
Mon Topic de Vente Hardware
Reply

Marsh Posté le 18-07-2005 à 15:26:44    

donny3 a écrit :

salut,
 
Sur chaque page de mon site j ai mis un include(menu.html) car on me la conseiller à la place des frame.


Déjà si ton menu.html ne contient pas de php, il ne faut pas mettre include, mais readfile. include va provoquer le parsing du .html, ce qui est inutile. suffit de le lire direct...

Reply

Marsh Posté le 19-07-2005 à 08:20:24    

voila le code de ma page de menu
franchement j ai pas trop compris, ce que vous m avez expliquer
 

Code :
  1. <html>
  2.   <head>
  3.    
  4.         <link rel="stylesheet" type="text/css" href=
  5.       "menu.css" title="défaut">
  6.     <script type="text/javascript" src="menu.js">
  7.     </script>
  8.   </head>
  9.   <body lang="fr" onload="Chargement();">
  10.        <div id="texte" onmouseover="CacherMenus();">
  11.      
  12.     </div>
  13.     <hr>
  14.     <p id="menu1" class="menu">
  15.       <a href="#" title="Menu 1" onmouseover=
  16.         "MontrerMenu('ssmenu1');" onfocus=
  17.         "MontrerMenu('ssmenu1');">Objet<span>&nbsp;:</span></a>
  18.     </p>
  19.     <ul id="ssmenu1" class="ssmenu">
  20.       <li>
  21.         <a href="commander.php" title=
  22.           "Sous-menu 1">Commander</a><span>&nbsp;;</span>
  23.       </li>
  24.       <li>
  25.         <a href="rech.php" title=
  26.           "Sous-menu 2">Affecter/Modifier</a><span>.</span>
  27.       </li>
  28.       <li>
  29.         <a href="creationobjet.php" title=
  30.           "Sous-menu 3">Creation Objet</a><span>.</span>
  31.       </li>
  32.     </ul>
  33.     <p id="menu2" class="menu">
  34.       <a href="#" title="Menu 2" onmouseover=
  35.         "MontrerMenu('ssmenu2');" onfocus=
  36.         "MontrerMenu('ssmenu2');">Poste<span>&nbsp;:</span></a>
  37.     </p>
  38.     <ul id="ssmenu2" class="ssmenu">
  39.       <li>
  40.         <a href="affecter.php" title=
  41.           "Sous-menu 1">Modifier composition</a><span>&nbsp;;</span>
  42.       </li>
  43.      
  44.     </ul>
  45.     <p id="menu3" class="menu">
  46.       <a href="#" title="Menu 3" onmouseover=
  47.         "MontrerMenu('ssmenu3');" onfocus=
  48.         "MontrerMenu('ssmenu3');">Etats<span>&nbsp;:</span></a>
  49.     </p>
  50.     <ul id="ssmenu3" class="ssmenu">
  51.       <li>
  52.         <a href="requete.php" title=
  53.           "Sous-menu 1">Requete Imprimante</a><span>&nbsp;;</span>
  54.       </li>
  55.       <li>
  56.         <a href="listreq2.php" title=
  57.           "Sous-menu 2">Creer requete</a><span>&nbsp;;</span>
  58.       </li>
  59.       <li>
  60.         <a href="requetPara.php" title=
  61.           "Sous-menu 3">Liste requete</a><span>&nbsp;;</span>
  62.       </li>
  63.      
  64.      
  65.     </ul>
  66.     <p id="menu4" class="menu">
  67.       <a href="#" title="Menu 4" onmouseover=
  68.         "MontrerMenu('ssmenu4');" onfocus=
  69.         "MontrerMenu('ssmenu4');">Tables<span>&nbsp;:</span></a>
  70.     </p>
  71.     <ul id="ssmenu4" class="ssmenu">
  72.       <li>
  73.         <a href="pole.php" title=
  74.           "Sous-menu 1">Poles</a><span>&nbsp;;</span>
  75.       </li>
  76.       <li>
  77.         <a href="familles.php" title="Sous-menu 2">Familles</a>
  78.           <span>&nbsp;;</span>
  79.       </li>
  80.       <li>
  81.         <a href="fournisseur.php" title="Sous-menu 3">Fournisseurs</a><span>.</span>
  82.       </li>
  83.       <li>
  84.         <a href="contact.php" title="Sous-menu 4">Contact</a>
  85.           <span>&nbsp;;</span>
  86.       </li>
  87.       <li>
  88.         <a href="personnel.php" title="Sous-menu 5">Personnel</a><span>.</span>
  89.       </li>
  90.       <li>
  91.         <a href="typesetat.php" title="Sous-menu 6">Types etat</a><span>.</span>
  92.       </li>
  93.       <li>
  94.         <a href="affectpost.php" title="Sous-menu 7">Affectation Poste</a><span>.</span>
  95.       </li>
  96.     </ul>
  97.     <p id="menu5" class="menu">
  98.       <a href="#" title="Menu 5" onmouseover=
  99.         "MontrerMenu('ssmenu5');" onfocus=
  100.         "MontrerMenu('ssmenu5');">Consommables<span>&nbsp;:</span></a>
  101.     </p>
  102.     <ul id="ssmenu5" class="ssmenu">
  103.       <li>
  104.         <a href="imprimante.php" title=
  105.           "Sous-menu 1">Gestion consommable</a><span>&nbsp;;</span>
  106.       </li>
  107.       <li>
  108.         <a href="compatible.php" title="Sous-menu 2">Creation consommable</a>
  109.           <span>&nbsp;;</span>
  110.       </li>
  111.       <li>
  112.         <a href="acheter.php" title="Sous-menu 3">Achat consommable</a>
  113.           <span>&nbsp;;</span>
  114.       </li>
  115.     </ul>
  116.     <p id="copy">
  117.    
  118.     </p>
  119.   </body>
  120. </html>

Reply

Marsh Posté le 19-07-2005 à 08:28:47    

Il faut supprimer les lignes 1 à 9 et 120 à 121


---------------
Mon Topic de Vente Hardware
Reply

Marsh Posté le 19-07-2005 à 08:28:47   

Reply

Marsh Posté le 19-07-2005 à 08:47:02    

si j enleve la ligne 9, la fonction javascript chargement elle ne fonctionnera plus et mon menu, ne marchera pas


Message édité par donny3 le 19-07-2005 à 08:47:32
Reply

Marsh Posté le 19-07-2005 à 08:51:38    

Mets-la dans la page qui reçoit l'include et qui contient déjà la balise <body>


---------------
Mon Topic de Vente Hardware
Reply

Marsh Posté le 19-07-2005 à 09:02:53    

et le head je peux le garder ?

Reply

Marsh Posté le 19-07-2005 à 09:13:34    

Mais non pas du tout.
 
Je crois que tu n'as pas bien compris.
 
La fonction include, inclue du code à l'intérieur d'un code déjà existant.
 
Si tu inclus :

Code :
  1. <html>
  2. <head></head>
  3. <body></body>
  4. </html>


à l'intérieur d'une page le contenant déjà, cela fera double-emploi et ton code ne sera pas valide.
 
Pour te rendre compte de cela, laisses ton code comme il était avant, fait "afficher la source" dans ton navigateur et admires...
 
Tu verras que ces balises sont en double au niveau des lignes de codes que tu auras inclues.
 


---------------
Mon Topic de Vente Hardware
Reply

Marsh Posté le 19-07-2005 à 09:27:56    

je l ai deja afit et j ai vu qu elle etait en double,
et donc ce que j ai dans le body de mon menu, je le met dans le body de ma page
et ce que j ai dans le head de mon menu, je le met dans le head de ma page
c est bien cela

Reply

Marsh Posté le 19-07-2005 à 10:02:25    

Normalement dans ta page principale elles devraient déjà y être, donc tu n'as pas besoin de les remettre dans ta page menu.html
 
Tu remplaces simplement la balise <body> de ta page principale par <body lang="fr" onload="Chargement();"> pour faire fonctionner ton menu correctement.


Message édité par fafane84 le 19-07-2005 à 10:04:04

---------------
Mon Topic de Vente Hardware
Reply

Marsh Posté le 19-07-2005 à 10:27:46    

j ai fait et donc quand j affiche le source
j ai bien qu un seul html et qu seul body
et je voulais savoir, vu que je recupere des infos dans une base qui est sur un serveur,c est normal que sa mette du temps pour charger quandla requete est compliquer et que le temps du chargement, on vois la structure du menu,vu que le include est avant tout dans ma page?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed