Inclure une page php via un lien
Résolu
Kaze_no_i-guru
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
Kaze_no_i-guru Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Kaze_no_i-guru Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Inclure une page php via un lien
- Supprimer une page word - Guide
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Verificateur de lien - Guide
12 réponses
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);">
Kaze_no_i-guru
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
28
Merci encore, je teste ça de suite.
J'ai résolu le soucis ça fonctionne bien chez moi.
J'ai revu la fonction Javascript qui n'était pas tout à fait bonne :
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" />-->
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" />-->
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 :
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^^ }?>
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):
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ;)
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 ;)
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 ?
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 ?
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.
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.
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 ;)
Pourrais tu me l'envoyer, par exemple l'enregistrer sur le site http://www.cijoint.fr/ et me transmettre le lien ;)
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.
http://jey.sunyata.free.fr/index.php
J'avais mal vu, apparemment, il inclut plusieurs pages en même temps.
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="#"....>
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="#"....>