Ouvrir une page dans un <div id=""> en XHTML ?

Ouvrir une page dans un <div id=""> en XHTML ? - HTML/CSS - Programmation

Marsh Posté le 07-09-2006 à 13:37:27    

Bonjour,
j'utilisais avant des frames pour faire mes sites :

  • frame haut = "banniere"
  • frame gauche = "menu"
  • frame droit = "corps"

Un clic sur un bouton du menu m'ouvrait dans mon frame "corps" la page demandé (<a href="toto.html">Toto</a> )
 
Seulement voilà, il parait qu'il vaut mieux arreter d'utiliser des frames :non: . Ce que je comprends  :jap: .
 
J'ai donc refait un site en virant les frames mais je ne sais pas comment ouvrir une page html dans un "cadre" (<div id="corps"> ).
voici un bout de code par exemple :

Code :
  1. <div id="menu">
  2. <div class="element_menu">
  3.  <a href="index.html" target="_top"><h1>MENU PRINCIPAL</h1></a>
  4.  <ul>
  5. <li><dt onmouseover="javascript:montre('smenu1');">Principes du dispositif</dt>
  6.   <div id="smenu1" onmouseover="javascript:montre('smenu1');" onmouseout= "javascript:montre('');">
  7.    <ul>
  8.     <li><a href="qui.htm#element_menu">Qui sommes-nous ?</a></li>
  9.     <li><a href="fonctionnement.htm" target="mainFrame">Fonctionnement</a></li>
  10.     <li><a href="soutien.htm" target="mainFrame">Soutien</a></li>
  11.     <li><a href="suivi.htm" target="mainFrame">Suivi professionnel</a></li>
  12.     <li><a href="accompagnement.htm" target="mainFrame">Accompagnement</a></li>
  13.     <li><a href="chiffres.htm" target="mainFrame">Chiffres</a></li>
  14.     <li><a href="temoignages.htm" target="mainFrame">Témoignages</a></li>
  15.    </ul>
  16.   </div>
  17. </div>
  18. </div>
  19. <div id="corps">
  20. <ul>
  21. </ul>
  22. </div>


Je ne trouve rien sur le net.
Quelqu'un peut-il m'aider SVP ??
 

Reply

Marsh Posté le 07-09-2006 à 13:37:27   

Reply

Marsh Posté le 07-09-2006 à 13:53:18    

premier exemple de n'importe quel tuto Php


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 07-09-2006 à 13:53:37    

On peut pas. Faut tout recharger. C'est comme ça queça marche, toute autre tentative conduit obligatoirement à des problèmes...

Reply

Marsh Posté le 07-09-2006 à 14:05:23    

on m'a dit d'essayer un truc du genre

Code :
  1. <a href="qui.htm#corps">Qui sommes-nous ?</a>


mais ça m'ouvre une nouvelle page...
 
boulax, tu parle de la fonction include c'est ça ?

Reply

Marsh Posté le 07-09-2006 à 14:06:34    

On ne peut pas remplacer un fragment d'HTML par une page entière. On ne peut évidemment pas imbriquer deux documents, c'est une règle de base de l'HTML.
 
Il faut obligatoirement tout recharger. La page doit être composée côté serveur.

Reply

Marsh Posté le 07-09-2006 à 14:26:59    

OK, bien compris.
du coup j'ai fait ça :

Code :
  1. <div id="corps">
  2. <?php
  3. include("accueil.php" );
  4. ?>
  5. </div>


 
et mon fichier accueil.php

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3.    <head>
  4.        <title></title>
  5.  
  6.   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7.      <link rel="shortcut icon" type="image/x-icon" href="outils/images/grafic.ico" />
  8. </head>
  9.   <body>
  10. <ul>
  11. <center>
  12. Mon texte a afficher dans la partie appropriée...
  13. </ul>
  14. <img src="outils/images/tremplin.jpg" width="100%">
  15. </center>
  16.   </body>
  17. </html>


 
Par contre, comment créer mes liens ?


Message édité par snp le 07-09-2006 à 14:27:20
Reply

Marsh Posté le 07-09-2006 à 14:30:02    

j'ai peur de comprendre....
quand FlorentG dit "Il faut obligatoirement tout recharger. La page doit être composée côté serveur." cela veut-il dire que je dois creer une page complete (avec menus, banniere, footer etc...) par lien ?


Message édité par snp le 07-09-2006 à 14:30:38
Reply

Marsh Posté le 07-09-2006 à 14:41:14    

Dans ton fichier accueil.php, tu n'as pas à redéclarer ton doctype et les en-têtes.
En fait, cette page est incluse dans ta page principale (celle qui contient le include('accueil.php')).
 
Tu ne dois pas donc pas recréer ton menu et le reste pour chaque page. Tout ceci est fait dans la page principale.
Puis les pages comme accueil.php doivent contenir uniquement les éléments que tu souhaites afficher dans ton <div id="corps">.
 
Mais le fait est que toute la page sera rechargée à chaque fois que l'utilisateur souhaitera changer de page.
Ce n'est pas très génant puisque ta bannière et ton menu sont dans le cache du navigateur et ne nécessitent généralement qu'un temps de chargement négligeable.
 
Pour ne modifier que le contenu de la balise <div id="corps">, il faudrait utiliser l'objet javascript XMLHttpRequest. La bannière et le menu ne seraient alors plus rechargés à chaque fois mais c'est une solution plus complexe et qui présente un certain nombre d'inconvénients.

Reply

Marsh Posté le 07-09-2006 à 15:15:17    

Merci gen2
OK donc pour le principe de l'inclusion, j'ai bien compris.
OK aussi pour le doctype et les en-têtes.
mais je ne comprends pas comment afficher un include dans mon <div id="corps"> en fonction d'un clic sur un lien.

Reply

Marsh Posté le 07-09-2006 à 16:01:40    

en gros, je clic dans mon menu sur "toto" et je veux voir la page toto.php s'afficher dans mon <div id="corps">.
je comprends pas comment faire

Reply

Marsh Posté le 07-09-2006 à 16:01:40   

Reply

Marsh Posté le 07-09-2006 à 16:39:45    

up

Reply

Marsh Posté le 07-09-2006 à 18:56:12    

Pour ça, tu dois passer le nom de ta page dans l'url.
 
Par exemple pour toto.php :
 
http://monsite.fr/index.php?page=toto
 
Et dans ton code PHP, tu auras quelque chose du genre :
 

Code :
  1. switch($_GET['page']) {
  2.     case 'toto':
  3.         include('toto.php');
  4.     break;
  5.     /* etc. */
  6. }

Reply

Marsh Posté le 08-09-2006 à 08:31:47    

OK j'ai bien compris : merci pour l'astuce !
par contre, comment faire pour avoir une page par défaut dans mon div id=corps quand j'ouvre index.php ?
parce que là il me met dans ce div justement un undefined index !

Reply

Marsh Posté le 08-09-2006 à 08:36:43    

Parceque à la ligne 0 gen2 a ecrit $_GET['page'] = (isset($_GET['page'])):$_GET['page']?'default'


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-09-2006 à 09:16:52    

désolé mais je comprends pas.
peux-tu mettre le code complet stp dans

Code :
  1. <div id="corps">
  2. <?php
  3.  switch($_GET['page'])
  4.  {
  5.   case 'qui':
  6.    include('qui.htm');
  7.   break;
  8.  }
  9. ?>
  10. </div>

Reply

Marsh Posté le 08-09-2006 à 11:05:56    

up svp

Reply

Marsh Posté le 08-09-2006 à 12:56:02    

une petite explication SVP ?

Reply

Marsh Posté le 08-09-2006 à 13:03:35    

T'es un vrau boulet toi hein :)
 

Code :
  1. <?php
  2.                 switch($_GET['page'])
  3.                 {           
  4.                            case 'qui':
  5.                                     include('qui.htm');
  6.                            break;
  7.                            default:
  8.                                     include('blabla.htm');
  9.                            break;
  10.                 }   
  11. ?>


 
http://www.php.net


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 13:21:08    

boulax a écrit :

T'es un vrau boulet toi hein :)
 

Code :
  1. <?php
  2.                 switch($_GET['page'])
  3.                 {           
  4.                            case 'qui':
  5.                                     include('qui.htm');
  6.                            break;
  7.                            default:
  8.                                     include('blabla.htm');
  9.                            break;
  10.                 }   
  11. ?>


 
http://www.php.net


 
En l'occurence le boulet c'est toi, parceque tu controles nulle part que $_GET['page'] existe, du coups tu risques de te manger un joli undefined index ... Bon appetit


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-09-2006 à 13:27:29    

ok :)
faut faire un if avant :)
lol :)


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 13:33:00    

oui j'en suis un !
mais je n'y arrive vraiment pas : undefined index !
voici ce que j'ai comme code dans ma partie php :

Code :
  1. <div id="corps">
  2. <?php
  3. switch ($_GET['page'])
  4.  {
  5.   default:
  6.    include('main.htm');
  7.   break;
  8.   case 'qui':
  9.    include('qui.htm');
  10.   break;
  11.   case 'fonctionnement':
  12.    include('fonctionnement.htm');
  13.   break;
  14.   case 'soutien':
  15.    include('soutien.htm');
  16.   break;
  17.   case 'suivi':
  18.    include('suivi.htm');
  19.   break;
  20.   case 'qui':
  21.    include('qui.htm');
  22.   break;
  23.   case 'qui':
  24.    include('qui.htm');
  25.   break;
  26.   case 'qui':
  27.    include('qui.htm');
  28.   break;
  29.   case 'qui':
  30.    include('qui.htm');
  31.   break;
  32.   case 'qui':
  33.    include('qui.htm');
  34.   break;
  35.   case 'qui':
  36.    include('qui.htm');
  37.   break;
  38.   case 'qui':
  39.    include('qui.htm');
  40.   break;
  41.   case 'qui':
  42.    include('qui.htm');
  43.   break;
  44.  }
  45. ?>
  46. </div>


Reply

Marsh Posté le 08-09-2006 à 13:33:57    

interressant.
 
Donc vraiment tu veux toujours pas te documenter ?


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 13:37:31    

Pourquoi 50 fois le case 'qui' ??
Le default au début hum pas bien...
 
Undefined index ça veut dire: index indéfini. T'as vraiment aucune idée d'ou ça pourrait venir et comment y remédier ?


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 14:03:28    

Merci pr ta patience boulax !
pour les 50 'qui' c'est du copier coller qui va me servir pour mes menus (j'aurai juste a modifier le 'qui' par le nom de ma page.
je suppose que je dois déclarer ma variable 'page' mais je ne vois pas comment....les if isset ne semble pas marcher...
mais j'avoue etre un boulet en effet...
pourquoi le default au début c'est pas bien ??


Message édité par snp le 08-09-2006 à 14:35:22
Reply

Marsh Posté le 08-09-2006 à 15:10:30    

Le principe de fonctionnement du siwtch fait qu'il vaut mieux mettre ton default à la fin si tu veux que ça marche.
 
Sinon pour ton code, en version un peu plus complète ça donne à peu près ça :

Code :
  1. if(!isset($_GET['page']) {
  2.     $page = 'main.html';
  3. } else {
  4.     switch($_GET['page']) {
  5.         case 'qui' :
  6.             $page = 'qui.html';
  7.         break;
  8.         /* etc */
  9.         default:
  10.             $page = 'main.html';
  11.     }
  12. }
  13. include($page);

Reply

Marsh Posté le 08-09-2006 à 15:28:53    

ça me gonfle grave tout ça, si vous saviez !!
merci en tout cas gen2 !
mais.....j'ai un parse error sur ta ligne 1

Reply

Marsh Posté le 08-09-2006 à 15:31:25    

Arrete l'informatique


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 15:31:51    

ou commence


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 15:39:12    

désolé mais je débute, c'est du loisir ce que je fais, c'est pas mon job !
j'essais de faire ce que je peux....

Reply

Marsh Posté le 08-09-2006 à 15:43:58    

Bah commence par les bases bordel [:mlc]
 
Apprends VRAIMENT la syntaxe d'un langage (en te DO-CU-MEN-TANT), apprends qu'en général ont doit refermer une parenthèse ouverte, apprends à lire les erreurs que le programme te renvoi, sinon dans 2 semaines t'en seras toujours au même niveau !


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 08-09-2006 à 15:48:47    

Boulax et gen2, vous avez raison sur le fond, mais faudrait arreter de donner des exemples foireux ... genre Gen2 ca se voit que t'a oublier un ) a la 1ere ligne ... Du coups ca aide pas vraiment un ultra debutant ...
 
Parcontre snp effectivement tu *dois* lire la doc avant de venir poser tes questions qui sont ,je te l'assure, totalement basique


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 08-09-2006 à 15:51:45    

j'y crois pas....je les avais comptées pourtant !!!!!!!!!!!
VRAIMENT UN GRAND MERCI !!!!

Reply

Marsh Posté le 08-09-2006 à 21:40:06    

esox_ch a écrit :

Boulax et gen2, vous avez raison sur le fond, mais faudrait arreter de donner des exemples foireux ... genre Gen2 ca se voit que t'a oublier un ) a la 1ere ligne ... Du coups ca aide pas vraiment un ultra debutant ...
 
Parcontre snp effectivement tu *dois* lire la doc avant de venir poser tes questions qui sont ,je te l'assure, totalement basique


 
Excuse moi d'avoir été poli avec snp, de l'avoir conseillé et de lui avoir fourni des exemples de codes, de ne pas avoir installé un serveur apache sur ma machine ainsi qu'un interpréteur PHP pour tester mes 3 lignes de codes. Non vraiment je suis désolé.
 
Promis j'aiderai plus les débutants avec mes exemples de codes foireux.
Sur ce bonne soirée  :hello:  

Reply

Marsh Posté le 08-09-2006 à 21:56:17    

FlorentG a écrit :

On ne peut pas remplacer un fragment d'HTML par une page entière. On ne peut évidemment pas imbriquer deux documents, c'est une règle de base de l'HTML.
 
Il faut obligatoirement tout recharger. La page doit être composée côté serveur.


Si on peut.  :o  
Sur IE depuis 98 et sur les autres navigateur depuis peu.
Mais comme MS c'est le mal on va zapper IE, on va dire que c'est les autres navigateurs qui l'ont inventé et on va appeler ça le Web 2.0, tout neuf, tout propre, nettoyé à l'Ajax (jeudemotpourriteinsidequejayhontedelavoirfé)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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