Inclure une page php via un lien

Résolu/Fermé
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 - 2 sept. 2009 à 14:29
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 - 5 sept. 2009 à 11:19
Bonjour,

J'ai une page php principale dans laquelle je souhaite inclure une autre page qui correspondrait à un lien sur lequel l'utilisateur clique.

Autrement dit, j'ai la page principale.php
dans cette page j'ai des liens : lien1 lien2 lien3
Lorsque je clique sur lien1, je voudrais que la page lien1.php soit incluse dans la page principale.php.

J'espère avoir été clair.

Je commence à m'arracher les cheveux avec ça, j'ai testé en utilisant la fonction include avec en argument une variable contenant la valeur du lien sur lequel on clique. Seulement je ne sais pas comment faire justement pour modifier la variable lorsque je clique sur un lien !

Je me suis alors tourné vers le javascript en utilisant un évènement onclick mais je n'ai pas trouvé d'équivalent à la fonction include de php en js. (ni réussi à mettre du php dans mon script js).

Et maintenant je suis à l'agonie donc j'ai besoin de votre aide ! Merci d'avance et n'hésitez pas à me poser des questions si je n'ai pas été assez précis dans mes explications.
A voir également:

12 réponses

CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
2 sept. 2009 à 15:24
Fallait le dire plus tôt, et le problème est tout aussi simple à régler.

<SCRIPT language="Javascript">
function afficherMaPage(value){
   document.getElementById("page1").style = none;
   document.getElementById("page2").style = none;
   document.getElementById("page3").style = none;
   if(value==1){
      document.getElementById("page1").style = inline;
   }
   if(value==2){
      document.getElementById("page2").style = inline;
   }
   if(value==3){
     document.getElementById("page3").style = inline;
   }
}
</SCRIPT>

<div id="page1" style="display:none">
     <?php    include('page1.php'); ?>
</div>
<div id="page2" style="display:none">
      <?php    include('page2.php'); ?>
</div>
<div id="page3" style="display:none">
      <?php     include('page3.php'); ?>
</div>

<a href="" onclick="afficherMaPage(1);">
<a href="" onclick="afficherMaPage(2);">
<a href="" onclick="afficherMaPage(3);">
2
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
2 sept. 2009 à 15:32
Merci encore, je teste ça de suite.
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
3 sept. 2009 à 10:18
J'ai résolu le soucis ça fonctionne bien chez moi.

J'ai revu la fonction Javascript qui n'était pas tout à fait bonne :

function afficherMaPage(value){

   document.getElementById("accueil").style.display = "none";
   document.getElementById("groupe").style.display = "none";

   ......

   if(value==1){
      document.getElementById("accueil").style.display = "inline";
   }
   if(value==2){
      document.getElementById("groupe").style.display = "inline";
   }

    ......
  
}


Puis j'ai commenté la ligne 30 de l'index qui bloque je ne sais pas trop quoi :
<!--<meta http-equiv="Content-Style-Type" content="text/ccs" />-->
1
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
2 sept. 2009 à 14:38
Bonjour,

Je pense que tu n'y es pas loin.

Il suffit de mettre dans tes <a href="page principale.php ..." ....> un paramètre en get.

Puis dans ta page principale.php :

<?php switch ($_GET("monParametre") {
case ValParam1:
    include1
    break;
case ValParam2:
     include2
    break;
case ValParam3:
     include3
    break;
default:
   pas d'include ou autre chose^^
}?>
0
Xakiru Messages postés 60 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 2 septembre 2009 10
2 sept. 2009 à 14:52
il faut savoir ce qu'on veux faire , si tu veux un truc d'aparance , c'est le coté client : html et le javascript , si c'est un truc d'exécution c'est du coté serveur: php, jsp, asp .

bon pour que je soi claire voila comment je procède :

je vais re-écrire ce qu'il a écris CaPiT, par ma façon (plus clair):

<?php 
if (isset($_GET['page']))
{
$page=$_GET['page'];
}
else
{
$page=4;
}
switch ($page) {
case 1:
    include('page1.php');
    break;
case 2:
    include('page2.php');
    break;
case 3:
    include('page3.php');
    break;
default:
    include('page4.php');
}
?>




Mais ceci vas s'exécute coté serveur ,si tu fait
http://..../monsite/index.php?page=1

tu aura une inclusion de la page 1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
2 sept. 2009 à 14:56
C'est pas une question de clarté.
C'est juste que je préfère ne pas donner la solution mais plutôt de bonnes pistes.

Enfin avec tout ça tu vas bien réussir à t'en sortir ;)
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
2 sept. 2009 à 15:14
Merci pour vos réponses rapides, j'avais vu la réponse de CaPiT et étais en train de tester.

J'ai bien ajouté le switch, mis les paramètres dans les balises <a> mais le navigateur me retourne l'erreur suivante "Function name must be a string" à la ligne du switch

.......

Xakiru soulève un point intéressant. En fait c'est pas la bonne solution pour moi : si j'utilise des include c'est parce que je ne veux pas que ma page principale soit rafraichie. Or, en utilisant cette méthode, quand je clique sur un lien ça rafraichit ma page. Y'aurait-il un autre moyen sans rafraichir la page ?
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
2 sept. 2009 à 16:00
Si je comprends bien le script, tous les calques sont présents mais sont masqués, et seul celui dont la valeur est entrée en paramètre est affiché, c'est bien ça ?

Mmh, à moins que j'ai fais une erreur quelque part, ça n'a pas l'air de fonctionner, seul le dernier

<div id="pageN" style="display:none">
<?php include('pageN.php'); ?>
</div>

est inclus, que je clique sur n'importe quel lien.


Apparemment, le navigateur se contente de lire les instructions

<div id="page1" style="display:none">
<?php include('page1.php'); ?>
</div>
<div id="page2" style="display:none">
<?php include('page2.php'); ?>
</div>
<div id="page3" style="display:none">
<?php include('page3.php'); ?>
</div>

à la suite, ce qui fait que seule la dernière page est incluse.

De plus, ma page principale est rafraichie lorsque je clique sur un lien.
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
2 sept. 2009 à 16:11
Là je ne peut pas trouver l'erreur.

Pourrais tu me l'envoyer, par exemple l'enregistrer sur le site http://www.cijoint.fr/ et me transmettre le lien ;)
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
2 sept. 2009 à 16:27
Je vais faire plus simple et te donner l'adresse sur laquelle j'héberge le site temporairement.

http://jey.sunyata.free.fr/index.php

J'avais mal vu, apparemment, il inclut plusieurs pages en même temps.
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
2 sept. 2009 à 16:35
Mon code inclue les 3 pages dans la page principale.

Donc elle sont toutes générées dès le début, c'est logique puisqu'il faut éviter un rafraichissement.

Après c'est juste un jeu de cache-cache entre les pages.

Je vais regarder le site mais je vais pas pouvoir faire grand juste puisque je n'ai pas accès au code source ;)

EDIT : mets a chaque lien des <a href="#"....>
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
2 sept. 2009 à 16:42
Oo ?

Effectivement, je n'y avais pas pensé.

http://jey.sunyata.free.fr/murf.rar
(J'ai mis deux pages php, le js et le css)
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
2 sept. 2009 à 16:52
Ou je suis je n'ai pas le droit de télécharger des .rar.

Je vois ça ce soir à la maison si j'y pense ><
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
2 sept. 2009 à 16:54
Ok, merci pour le temps qui tu y as déjà passé.
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
5 sept. 2009 à 11:19
ça marche ! !

Mille mercis, je n'aurais jamais réussi sans ton aide !
0