FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Pb avec plusieurs include PHP sur une même page
 

Pb avec plusieurs include PHP sur une même page

Il y a 430 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Pb avec plusieurs include PHP sur une même page
 
Plus d'informations

Bonjour

J'ai un problème. Sur la page php de mon site, j'ai plusieurs cadres d'include. Tout marche parfaitement sauf que lorsque je charge un des cadres, j'ai les autres qui deviennent vides. Ce que je voudrais c'est que lorsque je change un des cadres, les autres déjà s'affichent, mais qu'en plus ils ne bougent pas (en fonction des choix précédants de l'utilisateurs).

Si vous avez du mal à me comprendre, j'ai mis la page en question en ligne.

http://www.meteobell.com/Test/_classification.php

(C'est une page Test, donc les images de fonds sont blanches (c normal) et la javascript du menu situé en haut n'est pas en route.)

Pour comprendre ce que je veux dire, testez en cliquant sur un des liens des menus pour changer les cadres d'includes. (si vous ne voyez que les titres des cadres d'includes c normal, j'ai pas encore écrit le contenu).

Voilà, j'imagine que c mon code php qui est trop simple.

Le voici (inutile de mettre en exemple les 6 cadres, je mets que les 2 premiers pour l'ex) :


Code :
  1. (.....je vous met pas ce qu'il y avant c inutile aussi....)
  2. <div id="classification">
  3. <h1>Classification des Nuages</h1>
  4. <div id="class_menu_01"><!--Les Menus-->
  5.   <div class="class_element_menu">
  6.     <h2>Classification Par Altitude</h2>
  7.       <ul>
  8.       <li><a href="_classification.php?page=altitude#classification">Classification par Altitude</a></li>
  9.       <li><a href="_classification.php?page=haute_altitude#classification">Nuages de Haute Altitude</a></li>
  10.       <li><a href="_classification.php?page=moyenne_altitude#classification">Nuages de Moyenne Altitude</a></li>
  11.       <li><a href="_classification.php?page=basse_altitude#classification">Nuages de Basse Altitude</a></li>
  12.       <li><a href="_classification.php?page=altitude_vertical#classification">Nuages à Dévelloppement Vertical</a></li>
  13.     </ul>
  14.     </div>
  15.      
  16.   </div>
  17.   <div id="class_definition"><!--Code PHP  pour le cadre. Permet d'avoir un cadre différent par onglet, sans changer de page-->
  18.                        
  19.     <?php 
  20.     if (!isset($_GET['page'])) $page= 'altitude';
  21.       else $page= $_GET['page']; 
  22.       switch($page)
  23.         {
  24.         case 'altitude': include ('Classification/Par Altitude/altitude.html');break;
  25.       case 'haute_altitude': include ('Classification/Par Altitude/haute_altitude.html');break;
  26.         case 'moyenne_altitude': include ('Classification/Par Altitude/moyenne_altitude.html');break;
  27.         case 'basse_altitude': include ('Classification/Par Altitude/basse_altitude.html');break;
  28.     case 'altitude_vertical': include ('Classification/Par Altitude/altitude_vertical.html');break;
  29.       } 
  30.     ?>     
  31.   </div>
  32.      
  33.      
  34.     <hr/>
  35.      
  36.      
  37.   <div id="class_menu_02"><!--Les Menus-->
  38.      
  39.     <div class="class_element_menu">
  40.     <h2>Classification Par Genre</h2>
  41.       <ul>
  42.         <li><a href="_classification.php?page=genre#class_menu_02">Classification par Genre</a></li>
  43.         <li><a href="_classification.php?page=cirrus#class_menu_02">Cirrus (Ci)</a></li>
  44.         <li><a href="_classification.php?page=cirrocumulus#class_menu_02">Cirrocumulus (Cc)</a></li>
  45.         <li><a href="_classification.php?page=cirrostratus#class_menu_02">Cirrostratus (Cs)</a></li>           
  46.       <li><a href="_classification.php?page=altocumulus#class_menu_02">Altocumulus (Ac)</a></li>
  47.       <li><a href="_classification.php?page=altostratus#class_menu_02">Altostratus (As)</a></li>
  48.         <li><a href="_classification.php?page=nimbostratus#class_menu_02">Nimbostratus (Ns)</a></li>
  49.       <li><a href="_classification.php?page=stratocumulus#class_menu_02">Stratocumulus (Sc)</a></li>
  50.       <li><a href="_classification.php?page=stratus#class_menu_02">Stratus (St)</a></li>
  51.       <li><a href="_classification.php?page=cumulus#class_menu_02">Cumulus (Cu)</a></li>
  52.       <li><a href="_classification.php?page=cumulonimbus#class_menu_02">Cumulonimbus (Cb)</a></li>
  53.       </ul>
  54.     </div>
  55.      
  56.     </div>
  57.      
  58.      
  59.      
  60.     <div id="class_definition"><!--Code PHP  pour le cadre. Permet d'avoir un cadre différent par onglet, sans changer de page-->
  61.                            
  62.     <?php 
  63.       if (!isset($_GET['page'])) $page= 'genre';
  64.       else $page= $_GET['page']; 
  65.       switch($page)
  66.       {
  67.       case 'genre': include ('Classification/Par Genre/genre.html');break;
  68.     case 'cirrus': include ('Classification/Par Genre/cirrus.html');break;
  69.     case 'cirrocumulus': include ('Classification/Par Genre/cirrocumulus.html');break;
  70.     case 'cirrostratus': include ('Classification/Par Genre/cirrostratus.html');break;
  71.     case 'altocumulus': include ('Classification/Par Genre/altocumulus.html');break;
  72.     case 'altostratus': include ('Classification/Par Genre/altostratus.html');break;
  73.     case 'nimbostratus': include ('Classification/Par Genre/nimbostratus.html');break;
  74.     case 'stratocumulus': include ('Classification/Par Genre/stratocumulus.html');break;
  75.   case 'stratus': include ('Classification/Par Genre/stratus.html');break;
  76.     case 'cumulus': include ('Classification/Par Genre/cumulus.html');break;
  77.     case 'cumulonimbus': include ('Classification/Par Genre/cumulonimbus.html');break;
  78.         } 
  79.     ?>     
  80.     </div>
  81.      
  82.     <hr/>
  83.      
  84.      
  85. (.....etc....)



Si vous pouviez m'aider ou me mettre sur la voie, je vous en serais infiniment reconnaissant . :jap:

Profil : Pointeur
Plus d'informations

j'ai pas compris la question...
tu aimerais récupérer la valeur choisi ??


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Pardonne moi, je ne suis pas un as du php.

Si tu es allé sur ma page de test, tu auras remarqué qu'à l'ouverture on a bien un titre sur chaque cadre. Mais lorsqu'on chosit d'ouvrir un nouveau lien avec le menu de gauche, celui s'ouvre bien dans le cadre, mais tous les autres cadres se ferment, deviennent vierge.

Ce que je voudrais, c'est que non seulement ils ne soient pas vierges, mais qu'ils gardent (si c possible) les choix d'ouvertures précédants.

En fait pour comprendre l'utilité du système, il faut savoir par exemple qu'un cumulus (2ème cadre) peut être habilis (3eme cadre) ou bien mediocris (3eme cadre).
On peut trouver des cirrus (2eme) spissatus (3eme) intortus (4ème) mamma (5ème)
ou bien des cirrus (2ème) floccus (3ème) undulatus (4ème) mamma (5ème)
etc etc, les choix sont nombreux.

D'où l'utilité de garder les choix précédant de l'utilisateur.

Mais là ca marche pas. :??:

Profil : Pointeur
Plus d'informations

bha c'est logique, tu n'as q'une seule variable (page) pour tous les cadres...

fait plusieurs variable (en utilisant les autres dans les liens)

ps : et ce n'est pas un problème de php, c'est un problème de logique :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Ah bah oui maintenant que tu le dis, je me sens un peu con. pffff je suis bête moi alors.

Merci KangOl

Plus d'informations

Bon j'ai changé mes variables et donc les 6 cadres s'affichent maintenant, mais comme je le redoutais à chaque changement dans un des cadres, il me remet les autres cadres à l'origine, bref mon code ne prend pas en compte les choix précédants.

Profil : Pointeur
Plus d'informations

bha comme je t'ai dit faut que tu prennes en compte toutes les variables dans tes liens


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Euh c'est à dire. Tu pourrais me mettre un exemple ou un lien vers un tuto expliquant cela ? Tu as affaire un newbee du php. (j'ai honte)

En tout cas merci KangOl. On peut dire que tu es rapide à répondre lol

Plus d'informations

Pour que te variables gardent la même valeur, il faut que tu les transmettes à chaque fois par l'url en les récupérant avec $_GET :

tonurl.php?variable1=truc&variable2=bidule

$variable1=$_GET['variable1'];

etc...

Plus d'informations

oui mais cela va faire des noms de liens monstres....J'ai 6 variables (6 cadres) qui prennent environ 10 valeurs chacunes (10 liens par cadres). Donc en tenant compte qu'on prend pas les autres valeurs du cadre en cours il va falloir que dans mon url je mette 1 + 50 variables par liens ?

Donc cela va faire un truc du genre par ex pour le 1er (j'ai remplacé 'page' par 'cadre1' cadre2 etc)

<li><a href="_classification.php?cadre1=haute_altitude#classification&cadre2=genre&cadre2=cirrus&cadre2=cirrocumulus&cadre2=cirrostratus&cadre2=......etc.....">Nuages de Haute Altitude</a></li>

Et là j'ai même pas fini cadre2 et même pas fait cardre3, cardre4 cadre5 et cadre6 pour ce lien.
Et après rebelotte pour chaque lien.

Soit j'ai pas compris, soit je me demande si y'a pas plus simple.

Plus d'informations

Comme en C++, on peut pas mettre un Set variable C1 au moment de cliquer sur le lien C du cadre 1. Et lorsqu'on met un Set variable A2 au moment de cliquer sur le lien A du cadre 2, on a la variable C1 du cadre 1 qui est récupéré par un get et qui enclanche automatiquement l'action correspondant à la variable C1, soit le lien C du cadre 1, grâce là à un if get C1, on met set C1.

Je sais pas si c très clair, et mes (vagues) connaissances en C++ (modifié) ne sont surement pas transposable en Php, hélas.....

PS : non oubliez ce que j'ai dis, y'a que moi qui me comprend lol. :pt1cable:


Message édité par Damien49 le 18-10-2005 à 13:53:22
Profil : Pointeur
Plus d'informations

a écrit :

oui mais cela va faire des noms de liens monstres....J'ai 6 variables (6 cadres) qui prennent environ 10 valeurs chacunes (10 liens par cadres). Donc en tenant compte qu'on prend pas les autres valeurs du cadre en cours il va falloir que dans mon url je mette 1 + 50 variables par liens ?

Donc cela va faire un truc du genre par ex pour le 1er (j'ai remplacé 'page' par 'cadre1' cadre2 etc)

<li><a href="_classification.php?cadre1=haute_altitude#classification&cadre2=genre&cadre2=cirrus&cadre2=cirrocumulus&cadre2=cirrostratus&cadre2=......etc.....">Nuages de Haute Altitude</a></li>

Et là j'ai même pas fini cadre2 et même pas fait cardre3, cardre4 cadre5 et cadre6 pour ce lien.
Et après rebelotte pour chaque lien.

Soit j'ai pas compris, soit je me demande si y'a pas plus simple.

non, tu mets un seul cadre<x> dans l'url : celui choisi...

Plus d'informations

Bon on m'a proposé une autre façon de faire avec des variables de sessions du genre :

Code :
  1. <?php
  2. session_start();
  3. /** valeurs par défaut des cadres **/
  4. if(!isset($_SESSION['cadre1']))
  5.   $_SESSION['cadre1'] = 'altitude';
  6. if(isset($_GET['cadre1']))
  7.   $_SESSION['cadre1'] = $_GET['cadre1'];
  8. etc pour les 6 cadres
  9.     ?>



a mettre au début.
Après dans mon code php de chaque cadre je remplace les $cadre1 par $_SESSION['cadre1']

Mais je coince également. Il n'y a aucun changement. :??:

Plus d'informations

alor moi je dis vive les iframes !! avec sa t'aura pas de problème et tu gardera la meme apparence de ton site

Profil : Pointeur
Plus d'informations

a écrit :

alor moi je dis vive les iframes !! avec sa t'aura pas de problème et tu gardera la meme apparence de ton site


ou comment faire sale alors qu'on a les outils pour faire propre...


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

Les iframes je dis beurk

Sinon pour mon probleme, désolé j'ai utilisé une autre méthode car je voyais pas bien où vous vouliez en venir lol

Voilà ce que je fais maintenant :

comme j'ai dis pour le début sur le post précédant après session_start();

Puis sur le code php des cadres, j'utilise ça :

Code :
  1. <div id="class_menu_01"><!--Les Menus-->
  2.     <div class="class_element_menu">
  3.         <h2>Classification Par Altitude</h2>
  4.         <ul>
  5.             <li><a href="_classification.php?cadre1=altitude#classification">Classification par Altitude</a></li>
  6.             <li><a href="_classification.php?cadre1=haute_altitude#classification">Nuages de Haute Altitude</a></li>
  7.             <li><a href="_classification.php?cadre1=moyenne_altitude#classification">Nuages de Moyenne Altitude</a></li>
  8.             <li><a href="_classification.php?cadre1=basse_altitude#classification">Nuages de Basse Altitude</a></li>
  9.             <li><a href="_classification.php?cadre1=altitude_vertical#classification">Nuages à Dévelloppement Verticaux</a></li>
  10.         </ul>
  11.     </div>
  12. </div>
  13. <div id="class_definition"><!--Code PHP  pour le cadre. Permet d'avoir un cadre différent par onglet, sans changer de page-->
  14. <?php
  15. $_SESSION['cadre1'] = isset($_GET['cadre1']) ? $_GET['cadre1'] : 'altitude';
  16. switch($_SESSION['cadre1'])
  17. {
  18.     case 'altitude':include ('Classification/Par Altitude/altitude.html');break;
  19.     case 'haute_altitude':include ('Classification/Par Altitude/haute_altitude.html'); break;
  20.     case 'moyenne_altitude':include ('Classification/Par Altitude/moyenne_altitude.html');break;
  21.     case 'basse_altitude': include ('Classification/Par Altitude/basse_altitude.html');break;
  22.     case 'altitude_vertical': include ('Classification/Par Altitude/altitude_vertical.html');break;
  23.     default :include ('Classification/Par Altitude/altitude.html');
  24. }
  25.     ?>
  26.  
  27. </div>


Ex pour le cadre 1. Les autres c le même principe.

Hélas, aucun changement par rapport à avant.

Aucun bug, bon et c'est déjà ça, mais bon ca valait vraiment la peine de me casser le cul, si y'a pas de changements par rapport à avant. Ceci dis ça m'a permis après pas mal d'arrachage de cheveux de progresser en php.

Bon mais pourquoi mes variables de sessions ne font pas ce que je veux qu'elles fassent ?
Des idées ? :??:


Message édité par Damien49 le 19-10-2005 à 00:15:25
Plus d'informations

C'est bon laissez tomber j'ai trouvé la soluce ailleurs, et ça marche.


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » PHP & MySQL & ASP » Pb avec plusieurs include PHP sur une même page
 

Annonces Google
Publicité