Menu deroulant complexe

Menu deroulant complexe - PHP - Programmation

Marsh Posté le 20-05-2009 à 16:38:26    

Bonjour je souhaiterais creer un menu deroulant comprenant des catégorie et des sous categorie, tout ceci dans le même menu.
 
Quelqu'un aurait un script y ressemblant ?

Reply

Marsh Posté le 20-05-2009 à 16:38:26   

Reply

Marsh Posté le 25-05-2009 à 14:51:05    

personne a une idée ?

Reply

Marsh Posté le 25-05-2009 à 14:55:13    

Reply

Marsh Posté le 25-05-2009 à 15:05:12    

J'pense que si tout était inscrit sur google, il n'y aurait pas besoin de forum^^ J'ai déja chercher -_-"

Reply

Marsh Posté le 25-05-2009 à 15:15:10    

ben écoute, on en trouve plein en 30s, donc soit t'as pas bien cherché, soit tu cherches un truc hyper spécifique, auquel cas il faut que nous en dise plus...

Reply

Marsh Posté le 25-05-2009 à 15:40:24    

Autant pour moi ;) Ma demande n'est pas asser clair, je le conçoit.
 
Je doit creer un Menu comprenant Une catégorie ainsi que la(ou les ) sous catégories.Touts ceci ranger les unes sous les autres.
 
En faisant appel a un fichier .csv qu'il faut parcourir pour receuillir ces informations.
Sachant qu'il y a en réalité une dizaine de catégorie.
 
(je confirme qu'il n'y  a rien sur le net a ce sujet, c'est vraiment très spécifique).
 
Un Exemple :
 
Boitier (Catégorie )
avec allimentation (Sous Catégorie)
sans Allimentation (Sous Catégorie)
Moniteur (Catégorie)  
17' (Sous Catégorie)
22' (Sous Catégorie)

Reply

Marsh Posté le 25-05-2009 à 16:01:55    

regarde ce topic,  
http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
 
il a fait aussi des menu a partir de csv avec des familles , sous famille, essaye de t'en inspire, je pense que ca t'aidera un minimun

Reply

Marsh Posté le 25-05-2009 à 16:25:58    

Merci mais c'est moi ça xD

Reply

Marsh Posté le 25-05-2009 à 16:26:49    

Enfin c'est gentil de m'avoir re-donner mon topic :D

Reply

Marsh Posté le 25-05-2009 à 16:37:02    

maktu a écrit :

Merci mais c'est moi ça xD


1. Merci de ne pas faire de nouveau topic, alors   :pt1cable:  
2. On te donne une solution, tu dis qu'elle fonctionne. Pourquoi redemander la même chose ? Au minimum, tu pourrais expliquer ce qui cloche, non ?

Reply

Marsh Posté le 25-05-2009 à 16:37:02   

Reply

Marsh Posté le 25-05-2009 à 16:41:51    

1.Sauf que si tu as bien lu^^ce ne sont pas des choses identiques sinon je n'aurait pas creer un autre topic :s
2. Ben oui elle fonctionne, sauf qu'elle ne répond plus aux attente...  
Rien ne "cloche" donc je n'ai rien a expliquer -_-"

Reply

Marsh Posté le 25-05-2009 à 16:56:36    

sauf que la ta demande est tres tres tres vague,  
c'est un peu difficile de t'aider avec si peu de précision

Message cité 1 fois
Message édité par infoman64 le 25-05-2009 à 16:56:52
Reply

Marsh Posté le 25-05-2009 à 16:59:22    

Mouaip...
 
Donc en fait, ton "problème" c'est que maintenant qu'on t'a expliqué comment faire une cascade de listes à partir d'un CSV tu voudrais faire un menu en cascade.
C'est bien ça ?
 
=> On reprend le principe, en trois étapes :
1. Lecture du CSV (maintenant tu sais faire)
2. Choix d'un système de sous-menu, en CSS pur ou avec JS (recherche sur le net)
3. Intégration des éléments du CSV pour en faire les items du menu. En gros, tu reprends la boucle du code précédent, mais au lieu de remplir les option tu vas remplir les items du menu.
 
S'il y a une partie de ton code qui te pose problème on se fera (moi ou d'autres) un plaisir de t'aider...

Reply

Marsh Posté le 25-05-2009 à 17:14:05    

J'pense que mon expemple plus haut est asser clair. C'est dans un menu deroulant.
Menu deroulant qui comporte les 2 catégorie. Alors que dans mon ancien topic, les 2 menu était visuellement indépenant, mais liée au niveau du code.

Reply

Marsh Posté le 25-05-2009 à 17:41:40    

Je suis obliger d'utiliser du CSS ou java ? Oo

Reply

Marsh Posté le 25-05-2009 à 17:46:12    

J'pense pas que tu es vrément saisi ce que doit etre le résultat final.

Reply

Marsh Posté le 26-05-2009 à 09:30:32    

On va dire que le résultat final est la concaténation de 2 menu.

Reply

Marsh Posté le 26-05-2009 à 09:33:36    

maktu a écrit :

J'pense pas que tu es vrément saisi ce que doit etre le résultat final.

infoman64 a écrit :

sauf que la ta demande est tres tres tres vague,  
c'est un peu difficile de t'aider avec si peu de précision

:whistle:  
 
Quand tu parles de "menu déroulant", tu veux dire quoi au juste ?
Tu peux mettre du code, histoire d'illustrer ?

Reply

Marsh Posté le 26-05-2009 à 09:35:45    

On ne peut pas upload d'image sur le forum ? J'aimerais te donner un exemple visuel.

Reply

Marsh Posté le 26-05-2009 à 09:41:11    

Code :
  1. <?php
  2. session_start();
  3. $Vfamille="";
  4. if(isset($_POST["Famille"]))$Vfamille=$_POST["Famille"];
  5. $Vsfamille="";
  6. if(isset($_POST["SousFamille"]))$Vsfamille=$_POST["SousFamille"];
  7. ?>
  8. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  9. <html>
  10. <head>
  11. </head>
  12. <body>
  13. <SPAN style="position: absolute; top:50px;left: 250px;"><form  name="form1" method="post" action="">
  14. <label>Famille</label>
  15.  <select name='Famille' id='Famille' onchange="document.form1.submit();" >
  16.     <option>--Choix --</option>
  17. <?php
  18.   $fichier="Produits.csv";
  19.   $var=fopen("$fichier","r+" );
  20.   while( !feof($var))
  21.   {
  22.             $ligne=fgets($var);
  23.             $partie=explode(";",$ligne);
  24.             $famille=$partie[0];
  25.             $sousfamille=$partie[1];
  26.             $string=$famille." | ".$sousfamille;
  27.             if (($famille!="" )) // par contre la c'est intelligent de pas mettre de valeur nul
  28.             {
  29.              echo "<OPTION VALUE='$string' ";
  30.              if($string==$string) echo " selected "; //permet de reselectionner la valeur choisi précédenment
  31.               echo " ><h1>".$string."</h1></OPTION>";
  32.             }
  33.   }
  34. ?>
  35.  </SELECT>
  36. <?php
  37. }
  38. if(isset($_POST["SousFamille"])&&isset($_POST["Famille"])){// comme ca, cela ne s'affiche que si tu as sélectionné que la famille.
  39. ?>
  40.      
  41. <label>Marque</label>
  42.  <select name="Marque" >
  43.   <option>--Choix--</option>
  44. <?php
  45.          $cat=array();
  46.          $fichier="Produits.csv";
  47.          $var=fopen("$fichier","r+" );
  48.          $fichier="Produits.csv";
  49.   $var=fopen("$fichier","r+" );
  50.      while( !feof($var))
  51.      {
  52.          $ligne=fgets($var);
  53.          $partie=explode(";",$ligne);
  54.          $famille=$partie[0];//nom de la famille
  55.          $sousfamille=$partie[1];//sous famille
  56.          $marque=$partie[2];//sous famille
  57.         
  58.         
  59.          if (($Vfamille==$famille)&&($sousfamille==$Vsfamille)&&$marque!="" )
  60.          {
  61.             echo "<OPTION VALUE='$marque' ";
  62.       echo " >".$marque."</OPTION>";
  63.           }
  64.   }
  65. ?>
  66. </SELECT>
  67. </Form>
  68. </span>
  69. <?php
  70. }
  71. ?>
  72. </body>
  73. </html>

Reply

Marsh Posté le 26-05-2009 à 09:43:40    

Sauf que ici dans mon code, les sous Famille ( ou sous Catégorie appel ça comme tu veut ^^ ) se retrouve a coté des Famille et sa ne permet pas le selection individuel de l'un ou l'autre...
Moi je veut que cela apparaisse en desous les uns des autres...
dans un Menu Ascenseur, si tu prefère ce therme

Reply

Marsh Posté le 26-05-2009 à 10:12:10    

maktu a écrit :

Sauf que ici dans mon code, les sous Famille ( ou sous Catégorie appel ça comme tu veut ^^ ) se retrouve a coté des Famille et sa ne permet pas le selection individuel de l'un ou l'autre...
Moi je veut que cela apparaisse en desous les uns des autres...
dans un Menu Ascenseur, si tu prefère ce therme


tu as pas un exemple ?
si tu veut mettre une image
heberge la sur ce http://imageshack.us/  
tu as en plein d'autres
et apres copie le lien qui te sera donnée sur le forum et met le lien entre les balises img

Reply

Marsh Posté le 26-05-2009 à 10:15:55    

OK.
Donc ce n'est pas un menu, c'est une liste de choix...
En gros tu voudrais avoir quelque chose du genre

Code :
  1. <select name='Famille' id='Famille' onchange="document.form1.submit();" >
  2. <option>Famille1 - SousFamille1</option>
  3. <option>Famille1 - SousFamille2</option>
  4. <option>Famille2 - SousFamille1</option>
  5. </select>

Reply

Marsh Posté le 26-05-2009 à 10:18:08    

http://img38.imageshack.us/img38/8185/menuo.png
 
J'espère que ça t'aidera :D Voila tt a fait ce que j'aimerais Obtenir.
 

Reply

Marsh Posté le 26-05-2009 à 10:27:31    

Difficile a réaliser avec un fichier .csv ?

Reply

Marsh Posté le 26-05-2009 à 10:49:05    

nan c'est pas compliqué a faire, c'est un simple select
a toi de faire le traitement et la mise en forme.
tu fais pareil tu lit ton fichier, t'effectue le traitement necessaire,
et tu le balance le tout dans le select

Reply

Marsh Posté le 26-05-2009 à 10:56:28    

Ben le résultat que j'obtient me convient dans le sens où j'obtient bien mes catégorie correspondant a mes sous catégori dans une seule liste de choix. Mais La mise en forme n'est pas bonne. C'est la que je coinçe.
Car je voudrai pouvoir faire une selection individuel comme sur l'image que j'ai mit plus haut.

Reply

Marsh Posté le 26-05-2009 à 10:59:18    

http://img33.imageshack.us/img33/1582/menu2c.png
 
Voilà ce que j'obtient...

Reply

Marsh Posté le 26-05-2009 à 11:05:47    

Si tu veut le code, n'hésite pas à le demander :p

Reply

Marsh Posté le 26-05-2009 à 11:39:30    

Jm'en sort pas avec ce code... :(

Reply

Marsh Posté le 26-05-2009 à 13:07:58    

Tu as essayé de faire ta mise en forme en HTML pur ?
 
Si oui, peux-tu mettre sur le forum le code html de ce que tu veux, et le code de ce que tu as ?

Reply

Marsh Posté le 26-05-2009 à 13:08:46    

maktu a écrit :

Ben le résultat que j'obtient me convient dans le sens où j'obtient bien mes catégorie correspondant a mes sous catégori dans une seule liste de choix. Mais La mise en forme n'est pas bonne. C'est la que je coinçe.
Car je voudrai pouvoir faire une selection individuel comme sur l'image que j'ai mit plus haut.


 
comment ca selection individuel? je comprends pas
 
apres la mise en forme pour les couleurs ou le fond c'est du css

Reply

Marsh Posté le 26-05-2009 à 14:01:40    

j'arrive a un résultat presque satisfaisant :D j'ai juste des doublons... qqn pourait me trouver l'erreur ?

Reply

Marsh Posté le 26-05-2009 à 14:04:16    

http://img35.imageshack.us/img35/7532/menu3.png
Voila ce que j'ai

Reply

Marsh Posté le 26-05-2009 à 14:05:04    

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <?php
  3. session_start();
  4. //$Vfamille="";
  5. //if(isset($_POST["Famille"]))$Vfamille=$_POST["Famille"];
  6. //$Vsfamille="";
  7. //if(isset($_POST["SousFamille"]))$Vsfamille=$_POST["SousFamille"];
  8. ?>
  9. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  10. <html>
  11. <head>
  12. </head>
  13. <body>
  14. <SPAN style="position: absolute; top:50px;left: 250px;"><form  name="form1" method="post" action="">
  15. <label>Famille</label>
  16.  <select name='Famille' id='Famille' onchange="document.form1.submit();" >
  17.     <option>--Choix --</option>
  18. <?php
  19.   $fichier="Produits.csv";
  20.   $var=fopen("$fichier","r+" );
  21.   while( !feof($var))
  22.   {
  23.             $ligne=fgets($var);
  24.             $partie=explode(";",$ligne);
  25.             $famille=$partie[0];
  26.             $sousfamille=$partie[1];
  27.            
  28.              if (($famille!="" )&&(!isset($_SESSION[$famille]))) // par contre la c'est intelligent de pas mettre de valeur nul
  29.             {
  30.              echo "<OPTION VALUE='$famille' ";
  31.              if($famille==$famille) echo " selected "; //permet de reselectionner la valeur choisi précédenment
  32.               echo " >".$famille."</OPTION>";
  33.                echo "<OPTION VALUE='$famille' ";
  34.               if($sousfamille==$sousfamille) echo " selected ";
  35.               echo " >".$sousfamille."</OPTION>";
  36.               $_SESSION[$sousfamille]="aa";
  37.             }
  38. }
  39. ?>
  40. </SELECT>
  41. <?php
  42. if(isset($_POST["SousFamille"])&&isset($_POST["Famille"])){// comme ca, cela ne s'affiche que si tu as sélectionné que la famille.
  43. ?>
  44.      
  45. <label>Marque</label>
  46.  <select name="Marque" >
  47.   <option>--Choix--</option>
  48. <?php
  49.          $cat=array();
  50.          $fichier="Produits.csv";
  51.          $var=fopen("$fichier","r+" );
  52.          $fichier="Produits.csv";
  53.   $var=fopen("$fichier","r+" );
  54.      while( !feof($var))
  55.      {
  56.          $ligne=fgets($var);
  57.          $partie=explode(";",$ligne);
  58.          $famille=$partie[0];//nom de la famille
  59.          $sousfamille=$partie[1];//sous famille
  60.          $marque=$partie[2];//sous famille
  61.         
  62.         
  63.          if (($Vfamille==$famille)&&($sousfamille==$Vsfamille)&&$marque!="" )
  64.          {
  65.             echo "<OPTION VALUE='$marque' ";
  66.       echo " >".$marque."</OPTION>";
  67.           }
  68.   }
  69. ?>
  70. </SELECT>
  71. </Form>
  72. </span>
  73. <?php
  74. }
  75. ?>
  76. </body>
  77. </html>

Reply

Marsh Posté le 26-05-2009 à 14:15:33    

Il faudrait juste que chaque catégori et sous catégorie n'aparraise qu'une seule fois.

Reply

Marsh Posté le 26-05-2009 à 19:24:15    

deja c'est la balise <optgroup> pour faire ce que tu veux, et faudra faire 2 boucles imbriqués en php

 

ensuite ta plein de faute,  
2 doctype,
doctype avant session_start();
pas de meta content
pas de title

 

utilise file au lieux de fopen
met te balise en minuscule
les attribut en double quote

 

utilise :

 

if():
//blabla
endif;

 

c'est plus propre


Message édité par stealth35 le 26-05-2009 à 19:29:11
Reply

Marsh Posté le 27-05-2009 à 11:47:52    

Mon menu de famille est comme je le souhaite. Mais je n'arrive pas a y liée la liste des Marques...

Reply

Marsh Posté le 27-05-2009 à 15:30:34    

qqn saurait comment liéer tt ça ?

Reply

Marsh Posté le 28-05-2009 à 09:20:47    

up ? :p

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed