Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2006, 16h50   #1
Membre régulier
 
Inscription : décembre 2005
Messages : 305
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 305
Points : 86
Points : 86
Par défaut [Conception] recuperer la valeur d'un menu onchange spécial

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
Code :
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>
Connection.php
Code :
1
2
3
4
5
 
<?php
	$db = mysql_connect("localhost","root","");
	mysql_select_db("essai");
?>
traitement_deroulant.php
Code :
1
2
3
4
5
6
7
 
<?php 
foreach($_POST as $key=>$val){
	echo $val;
	echo "<br />";
}
?>
base de donnée essai table fr_menu_cat
Code :
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, '');
le traitement_deroulant.php afficher les selections et le niveau soit
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 !!!
carmen256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 18h17   #2
Membre régulier
 
Inscription : décembre 2005
Messages : 305
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 305
Points : 86
Points : 86
Par défaut reponse

personne ne sait !!!
carmen256 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h43.


 
 
 
 
Partenaires

Hébergement Web