Menu dynamique avec txt

Signaler
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004
-
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007
-
salut!
g 2 frames, celle d en haut permet de naviguer, celle d en bas affiche les pages web...
si ds un .txt je met ttes les valeurs pr chaque page ce kelle doit afficher:

1:page précédente ;page suivante;conseil;explication;
2:...
sachant que parfois il n y a pas de conseil ou d explication
comment creer le menu et permettre l affichage de la bonne page ds la frame du bas?
merci de votre aide si vs m avez compris :)

26 réponses

Messages postés
122
Date d'inscription
samedi 6 mars 2004
Statut
Membre
Dernière intervention
5 mai 2004

rien compris pis c du html ca, pas du php))))
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

C vrai qu'on comprend pas grand chose à ce que t'as essayer d'expliquer !!
Y a pas moyen que tu fasse ça en plus clair ?

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

bah alors j v essayer d etre plu clair :)
j sui en stage et j dois faire un modulde de formation qui sera integrer a une plateforme...ce module é composé de page html é il fo faire un truc pour la navigation
donc:page suivante, page precedente,e mail,glossaire ca c d option qui st tjrs presente avec leur lien qui change..mais certaine page on ossi un lien vers des conseils ou d explication...
j avé fé un truc barbare avec d include
if($id==20)
{
$suivant=20;
}
else
{
$suivant=$id+1;
}
?>
[main.php?id=<?=$precedent?> [Page précédente]]
[main.php?id=<?=$suivant?> [Page
suivante]] [glossaire.html [Glossaire]]
[mailto: [Mel formateur]]
<?php
if ($id==0)
{
include ("acceuil.html");
}

?>
é pis si y avé d conseils sur la page :
if ($id==10)
{

echo"[Conseil]";
include ("analyse_structurelle.html");

mais voia la le gars é venu é m a dit que ca allait pa parce qu il fo qu il y ai la frame sinon c pourri é il m a parlé de fopen()é de mettre ttes mes infos ds un txt....mé voila j suis un vieu boulet de php....
dc voila j espere que g été clair...c sur que c faisable en html mé le gars veut du dynamique pr facilité les mises a jour ou l insertion de pages o module...
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

C'est déjà plus clair !!

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

Ben je pense que faire avec un fichier txt devrait pas être trop compliqué,

si tu stoke ds le fichier txt comme tu l'as dis plus haut,
1:page précédente ;page suivante;conseil;explication;
2:page précédente ;page suivante;conseil;explication;

voici une façon de faire avec un fichier txt,
je te remet pas tout, on dit que le numero de la page à charger est dans $id

$fp= fopen("tonfichier.txt","r");
$i="0";
while ($i!=$id)
{$ligne= fgets($fp,4096);
$i++;
}
//maintenant $ligne contient la ligne correspondant à l'id

fclose(fp);
$vals=explode(":",$ligne);
$ligne=$vals[1];

//$ligne contient maintenant : "page précédente ;page suivante;conseil;explication;"

list($precedent,$suivant,$conseil,$explication)=explode(";",$ligne);

voilà,
maintenant tu as récupéré les valeurs dans :
$precedent
$suivant
$conseil
$explication

je te laisse le soin d'ajouter toutes les routines de vérifications que les variables contiennent quelquechose et patati et patata !!!

ben voilà j'espere t'avoir aidé !!

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

c fclose($fp) au lieu de fclose(fp);
dsl !
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

merci pr ton aide!
v teste ca!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

coucou!j ai pris ta méthode mé comment faire que a chaque click $id prenne la valeur id+1 ou id-1?le onclick=$id++ ca marche po....

<?php
$id=1;
$fp= fopen("test.txt","r");
$i="0";
while ($i!=$id)
{$ligne= fgets($fp,4096);
$i++;
}
fclose($fp);
$vals=explode(":",$ligne);
$ligne=$vals[1];

list($precedent,$suivant,$conseil,$explication)=explode(";",$ligne);
?>

<?php
echo "[Page précédente] ";
echo "[Page suivante] ";
echo "[Glossaire]";
echo "[Mel formateur]";

?>
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

C'est normal que ça ne marche pas avec du javascript !!
Tu ne peux ps passer une variable en php comme ça,
il faut soit que tu fasses des sessions avec php4 chose plus complexe et pas très utile dans ton cas, ou soit tu passe le variable en l'integrant dans l'url, méthode que l'on va choisir içi !

pour que l'id soit passé il faut que tu fasse des liens du style :

echo "[Page précédente] ";
par exemple
donc toi il faut :

<?php
//$id=1;// pourquoi tu veux réinitialiser à 1 à chaque fois ?
si c'est pour la premiere page tu peux mettre
if(!isset($id)) $id="1";
if ($id=="") $id="1";

$fp= fopen("test.txt","r");
$i="0";
while ($i!=$id)
{$ligne= fgets($fp,4096);
$i++;
}
fclose($fp);
$vals=explode(":",$ligne);
$ligne=$vals[1];

list($precedent,$suivant,$conseil,$explication)=explode(";",$ligne);

echo "[Page précédente] ";
echo "[Page suivante] ";
echo "[Glossaire]";
echo "[Mel formateur]";

?>
voilà je pense que c'est ça que tu voulais faire, mais attention, tes pages doivent être des php.
Si t'as encore qques soucis, n'hésite pas

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

oups, pour le echo pr la page suivante, c'est ($id+1)
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

ca marche pa comme t as dis....
<?php

$fp= fopen("test.txt","r");
$i="0";
while ($i!=$id)
{$ligne= fgets($fp,4096);
$i++;
}

fclose($fp);
$vals=explode(":",$ligne);
$ligne=$vals[1];

list($precedent,$suivant,$conseil,$explication)=explode(";",$ligne);
}
}
?>

<?php

echo "[Page précédente] ";
echo "[Page suivante] ";
echo "[Glossaire]";
echo "[Mel formateur]";

il affiche plus rien meme pa la 1ere....
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

mais je t'avais mis en vert, il faut que t'ajoute au tout debut de ton code :

if(!isset($id)) $id="1";
if ($id=="") $id="1";
si tu mets pas ça, pour la premiere page il ne vas pas définir d'id donc il ne vas rien t'afficher puisqu'il n'aura rien lu dans le fichier.

donc le code entier c'est :

<?php

if(!isset($id)) $id="1";
if ($id==""||$id<1) $id="1";
$fp= fopen("test.txt","r");
$i="0";
while ($i!=$id)
{$ligne= fgets($fp,4096);
$i++;
}

fclose($fp);
$vals=explode(":",$ligne);
$ligne=$vals[1];

list($precedent,$suivant,$conseil,$explication)=explode(";",$ligne);

echo "[Page précédente] ";
echo "[Page suivante] ";
echo "[Glossaire]";
echo "[Mel formateur]";

?>

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

ah oui mais j'y suis, c'est vrai que tu as deux frames !!
c'est pour ça que ça marche pas, j'y pensais plus, alors meme mon dernier mess ne marchera pas lol.
attends un peu, faut que je réflechisse
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

Et c'est obligé que tu travailles avec deux frames ?
Ca serait plus simple en faisant une include sue chaque page.
si tu veux faire comme ça, alors c'est facile,
on va mettre le code (le dernier que je t'ai mis) dans un fichier appelé "menu.php".

ensuite chaque sur chaque page sur lesquelles tu veux ton menu, tu mets à l'endroit où tu veux que la barre de menu apparaisse :
<?php
include('menu.php');
echo "
";
?>
et ensuite le code html de ta page.
par contre,tu devra nommer toutes tes pages en ".php".
voilà ce coup ci ça devrait marcher!!

Di moi si tu as encore des pbs et si tu dois faire absolument 2 frames, on trouvera une solution.
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

bah ca serait bien avec 2 frames...parce que sinon le gars a plus le menu pr naviguer si il descnd tro ds une page é c dommage...j avé deja fé avec d include é ca marche ossi pr les pages html pa besoin de les renommée en .php
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

voilà je crois que j'ai une solution :

tu aura ta page d'index qui défini les 2 frames,
pour mon exemple je prend : name="barre" src="menu.php" pour la frame du menu
et name="main" src="prem_page.htm" pour l'autre frame.
voila ta page index.htm qui définie les frames :

[green<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<frameset rows="80,*" frameborder="NO" border="0" framespacing="0">
<frame src="menu.php" name="barre" scrolling="NO" noresize >
<frame src="prem_page.htm" name="main">
</frameset>
<noframes>

</noframes>
</html>

menu.php contient :

<?php

if(!isset($id)) $id="1";
if ($id==""||$id<1) $id="1";
$fp= fopen("test.txt","r");
$i="0";
while ($i!=$id)
{$ligne= fgets($fp,4096);
$i++;
}

fclose($fp);
$vals=explode(":",$ligne);
$ligne=$vals[1];

list($precedent,$suivant,$conseil,$explication)=explode(";",$ligne);

echo"<html>
<head>
<title>barre de menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
function aff(menu,page) {
parent.barre.location = menu;
parent.main.location = page;
}
</script>
</head>";

echo "[Page précédente] ";
echo "[Page suivante] ";
echo "[Glossaire]";
echo "[Mel formateur]";
echo "</html>";

?>
/green

voilà j'ai meme fait la manip chez moi et je peux te dire que ce coup ci ça marche !!!
Y a plus qu'a remplir ton fihier text !!!

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

oulà !
j'sais pas ce qu'il m'a fouttu avec la couleur, mais bon ote le "[green" du debut et le "/green de la fin
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
53
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
27 septembre 2007

ps :dis moi si ca te convient ça !!
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

:)
c nickel!merci beaucoup!
par contre j capte pas tro la fonction javascript...ca sert a dire ds quelle frame ca se met non?mé cmt ca le fait?
j t embete plus apres :-p
merci encore!
Messages postés
29
Date d'inscription
mercredi 14 avril 2004
Statut
Membre
Dernière intervention
26 mai 2004

y a juste une couille:
qd j le lance,ca me met la 1ere page, é qd j fé suivant ca met 2menus,l un sous l otr,fo que je clique 2 fois é apres ca marche nickel...j v regarder, j te tien o courant...tu l avé pa ce bug ché toi?