Bonjour
J ai fait un menu onchange qui crée autant de menu qu il y a de parents de la base données. J arrive à faire afficher les valeurs de tous les menus mais je n'arrive pas prendre automatiquement la valeur de la dernière du dernier menu. Pouvez vous m aider ?
voici le code :
menu_deroulant_onchange.php
Connection.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 <?php require("connection.php"); function tableau($index){ $test = explode(";",$index); return($test); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title></title> <script language="javascript"> function change(menu){ var nom = menu.name; var valeur = menu.value; var taille = nom.length; var niveau = nom.substring(taille-1,taille); if (parseInt(niveau)+1 < document.menu.index.value.length){ document.menu.index.value=document.menu.index.value.substring(0,(parseInt(niveau))*2); } if (valeur != "") { if (document.menu.index.value == null){ document.menu.index.value=valeur+";"; } else { document.menu.index.value = document.menu.index.value + valeur+";"; } } document.menu.action="menu_deroulant_onchange.php"; document.menu.submit(); } function envoyer(){ document.menu.action="traitement_deroulant.php"; document.menu.submit(); } </script> </head> <body> <form name="menu" method="post"> <select name="menu0_0" onchange="change(this);"> <option value="">Sélèctionner</option> <?php $sql = "select num_menu,categorie,parent from fr_menu_cat where parent = 0"; $result = mysql_query($sql); //recuperation du tableau if (isset($_POST["index"])){ $tableau = tableau($_POST["index"]); } while ($rows = mysql_fetch_object($result)){ if ($rows->num_menu == $tableau[0]){ ?> <option value="<?php echo $rows->num_menu;?>" selected="selected"><?php echo $rows->categorie;?></option> <?php } else { ?> <option value="<?php echo $rows->num_menu;?>"><?php echo $rows->categorie;?></option> <?php } } ?> </select><br /> <?php if (isset($_POST["index"])) { $test = tableau($_POST["index"]); $taille = sizeof($test)-1; $i = 0; while ($i < $taille){ $sql = "select num_menu,categorie,parent from fr_menu_cat where parent =".(int)$test[$i]; $result = mysql_query($sql); $taille1 = mysql_num_rows($result); if ($taille1 > 0){ echo "<select name='menu".$test[$i]."_".($i+1)."' onchange='change(this);'>"; while ($rows = mysql_fetch_object($result)){ if ($rows->num_menu == $test[$i+1]){ echo "<option value='".$rows->num_menu."' selected='selected'>".$rows->categorie."</option>"; } else { echo "<option value='".$rows->num_menu."'>".$rows->categorie."</option>"; } } echo "</select>"; } echo "<br />"; $i++; } } ?> <br /> <input type="hidden" name="index" value="<?php if (isset($_POST["index"])) echo $_POST["index"];?>" /><br /> <input type="button" onclick="envoyer();" /> </form> </body> </html>
traitement_deroulant.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $db = mysql_connect("localhost","root",""); mysql_select_db("essai"); ?>
base de donnée essai table fr_menu_cat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php foreach($_POST as $key=>$val){ echo $val; echo "<br />"; } ?>
le traitement_deroulant.php afficher les selections et le niveau soit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 -- phpMyAdmin SQL Dump -- version 2.6.1 -- http://www.phpmyadmin.net -- -- Serveur: localhost -- Généré le : Vendredi 31 Mars 2006 à 16:46 -- Version du serveur: 4.1.9 -- Version de PHP: 4.3.10 -- -- Base de données: `essai` -- -- -------------------------------------------------------- -- -- Structure de la table `fr_menu_cat` -- CREATE TABLE `fr_menu_cat` ( `num_menu` int(11) NOT NULL auto_increment, `categorie` text NOT NULL, `parent` int(11) NOT NULL default '0', `photos` text NOT NULL, PRIMARY KEY (`num_menu`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Contenu de la table `fr_menu_cat` -- INSERT INTO `fr_menu_cat` VALUES (1, 'Informatique', 0, ''); INSERT INTO `fr_menu_cat` VALUES (2, 'Sélectionner', 1, ''); INSERT INTO `fr_menu_cat` VALUES (3, 'Composant', 1, ''); INSERT INTO `fr_menu_cat` VALUES (4, 'Périphérique', 1, ''); INSERT INTO `fr_menu_cat` VALUES (5, 'Processeur', 3, ''); INSERT INTO `fr_menu_cat` VALUES (6, 'Carte Mere', 3, ''); INSERT INTO `fr_menu_cat` VALUES (7, 'Ecran', 4, ''); INSERT INTO `fr_menu_cat` VALUES (8, 'Clavier', 4, '');
1
4
7
1;4
la valeur que je dois récupérer automatique c'est le 7 qui correspond à la derniere sélèction dans le dernier menu. Et c'est que je n'arrive pas à faire. Pouvez m 'aider![]()
Merci d'avance !!!
Partager