Menu dynamique avec txt

zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004 - 30 avril 2004 à 19:51
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007 - 6 mai 2004 à 21:25
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

XsatanaX Messages postés 122 Date d'inscription samedi 6 mars 2004 Statut Membre Dernière intervention 5 mai 2004
1 mai 2004 à 03:44
rien compris pis c du html ca, pas du php))))
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
1 mai 2004 à 14:43
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 !!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
1 mai 2004 à 20:34
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...
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
1 mai 2004 à 21:08
C'est déjà plus clair !!

-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!

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

Posez votre question
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
1 mai 2004 à 22:05
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 !!
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
1 mai 2004 à 22:08
c fclose($fp) au lieu de fclose(fp);
dsl !
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
2 mai 2004 à 13:41
merci pr ton aide!
v teste ca!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
3 mai 2004 à 15:37
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]";

?>
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
3 mai 2004 à 18:54
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 !!
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
3 mai 2004 à 18:58
oups, pour le echo pr la page suivante, c'est ($id+1)
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
3 mai 2004 à 21:46
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....
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
3 mai 2004 à 23:22
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 !!
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
3 mai 2004 à 23:25
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 !!
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
3 mai 2004 à 23:36
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 !!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
4 mai 2004 à 09:37
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
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
4 mai 2004 à 19:14
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 !!
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
4 mai 2004 à 19:17
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 !!
cs_ribos Messages postés 53 Date d'inscription samedi 26 juillet 2003 Statut Membre Dernière intervention 27 septembre 2007
4 mai 2004 à 19:19
ps :dis moi si ca te convient ça !!
-----------------------------------------------
le SAVOIR est le seul et unique pouvoir !!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
5 mai 2004 à 10:31
:)
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!
zetrueneo Messages postés 29 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 26 mai 2004
5 mai 2004 à 10:56
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?
Rejoignez-nous