Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
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 23/06/2011, 00h15   #1
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Par défaut Javascript et PHP.

Bonjour,

Voila je blogue sur un probleme tous simple qui et de changer la class d'un lien d'un menu générer en php via une base de données.

pour tous ces lien, j'ai bien un identifiant unique afin de ne changer q'un seul lien. Or lorsque je suis dans un sous menu, j'appelle la fonction javascript, mais celle ci na pas l'air de fonctionner.

Voila mon script:
Code :
1
2
3
4
5
6
7
8
 
if ($bddChemin == $Chem)
{
...
$IDClass = str_replace(' ','',$SS_MENU["Menu"]);
$IDClass = $IDClass.'2';
echo ' <script> ChangeClass('.$IDClass.'); </script>';
}
Et voici ma fonctions:

Code :
1
2
3
4
5
6
7
8
 
echo ' <script>';
	echo ' ChangeClass(IDMenu)';
	echo '{';
	echo ' document.getElementById(\'IDMenu\').className = \'link\';';
	echo ' alert(\'IDMenu\');';
	echo ' };';
echo ' </script>';
Comme vous pouvez le voir le script et dans une page php.

Je ne vois pas ou j'ai pu me trompez.
Merci de bien vouloir m'eclairer.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 01h39   #2
Membre éclairé
 
Avatar de kimjoa
 
Inscription : février 2009
Messages : 318
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : février 2009
Messages : 318
Points : 360
Points : 360
Salut!
Je crois que tu essayes de de changer la classe de ton lien actif non?
Il y'a une propriété css pour ca. Je sais plus là quel ....

Sinon pourquoi tu génère ton js via php? Notamment la fonction ChangeClass?

Et manque du code aussi, car là , et au vue de tes explications, c'est chaud de t'aider ...

bye
kimjoa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 02h08   #3
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Citation:
Envoyé par kimjoa
pourquoi tu génère ton js via php ? Notamment la fonction ChangeClass ?
Il y manque d'ailleurs le mot clé function.

Code js :
1
2
echo '<script type="text/javascript">';
echo 'function ChangeClass(IDMenu)';
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 11h14   #4
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Voici en faite mon code qui genere mon menu et sous menu:

code du menu qui creer un lien vers une page web ou un lien de survol:

Ma table menu et composer des champs suivants:
Code :
1
2
3
4
5
6
7
 
+----+----------------+------------------+------+
| ID | Nom            | Chemin           | Rang |
+----+----------------+------------------+------+
|  4 | Acceuil        | index.php        |    1 |
|  6 | News           | News.php         |    2 |
|  7 | Equipes        |                  |    3 |
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
 
echo '<div id="menu">';
	$sql = "SELECT * FROM MENU ORDER BY Rang ASC";
	$requete = mysql_query ($sql);
	echo '<ul>';
	while ($Data = mysql_fetch_assoc($requete))
	{
		$sql = "SELECT Nom FROM MENU WHERE Nom != '$Data[Nom]' ORDER BY Rang ASC";
		$requete2 = mysql_query ($sql);
		echo '<li onmouseover="';
		while ($Menu = mysql_fetch_assoc($requete2))
		{
			$Var=str_replace(' ','',$Menu["Nom"]);
			echo 'cacheId(\''.$Var.'\');';
		}
		$Var2=str_replace(' ','',$Data["Nom"]);
		echo 'afficheId(\''.$Var2.'\');"';
		$Chemin = $Data["Chemin"];						//si c est un dossier, alors pas de lien.
		$modeleChemin = 'php$';
		if (ereg ($modeleChemin,$Chemin) === FALSE)
		{
			$Class = ' class=""';
			echo '<a id="'.$Var2.'2" '.$Class.'>'.$Data["Nom"].'</a></li>';
		}
		else
		{
			$page = $_SERVER['PHP_SELF'];
			$arrayPage = explode ("/",$page);
			$tab = count ($arrayPage);
			$tab--;
			if ($Data["Chemin"] == $arrayPage[$tab])
			{
				$Class = ' class="link"';
			}
			else
			{
				$Class = ' class=""';
			}
			echo '<a id="'.$Var2.'2" '.$Class.' href="'.$url.''.$Data["Chemin"].'">'.$Data["Nom"].'</a></li>';
		}
	}
	echo '</ul>';
echo '</div>';
et voici mon code pour gerer les sous menu qui sont fait via la bdd suivantes:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
+----+------------------------------------+-----------------------------+------+----------------+
| ID | Nom                                | Chemin                      | Rang | Menu           |
+----+------------------------------------+-----------------------------+------+----------------+
|  4 | Promotions                         | Saison2010_2011/Equipes.php |    1 | Equipes        |
|  5 | 2eme Divisions                     | Saison2010_2011/2emeDiv.php |    2 | Equipes        |
|  6 | U15                                | Saison2010_2011/U15.php     |    3 | Equipes        |
|  8 | U14                                | Saison2010_2011/U14.php     |    4 | Equipes        |
| 19 | Pr&eacute;-D&eacute;butants(U6-U7) | Saison2010_2011/U6-U7.php   |    1 | Ecoles de foot |
| 21 | Poussins(U10)                      | Saison2010_2011/U10.php     |    3 | Ecoles de foot |
| 22 | Poussins(U11)                      | Saison2010_2011/U11.php     |    4 | Ecoles de foot |
| 23 | Benjamins (U12-U13)                | Saison2010_2011/U12-U13.php |    5 | Ecoles de foot |
| 24 | Photos                             | Photos.php                  |    1 | Photos         |
| 25 | Vid&eacute;os                      | Videos.php                  |    2 | Photos         |
| 26 | Saison 2009 2010                   | Saison2009_2010             |    1 | Historique     |
| 39 | D&eacute;butants (U8-U9)           | Saison2010_2011/U8-U9.php   |    2 | Ecoles de foot |
+----+------------------------------------+-----------------------------+------+----------------+
le code des sous menu:

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
 
echo '<div id="ss_menu">';
	$sql = "SELECT DISTINCT Menu FROM SS_MENU";
	$requete = mysql_query ($sql);
	while ($Data = mysql_fetch_assoc($requete))
	{
		$Var=str_replace(' ','',$Data["Menu"]);
		echo'<ul id="'.$Var.'" onmouseover="afficheId(\''.$Var.'\');" onmouseout="cacheId(\''.$Var.'\');">';
		$sql = "SELECT * FROM SS_MENU WHERE Menu = '$Data[Menu]' ORDER BY RANG ASC";
		$requete2 = mysql_query ($sql);
		while ($SS_MENU = mysql_fetch_assoc($requete2))
		{			
			$file = $SS_MENU["Chemin"];
			$modelefile = 'php$';
			if (ereg ($modelefile,$file) === FALSE)			//si c'est un dossier (pour menu historique).
			{
				echo '<li style="color:#FFFFFF;"><bg>'.$SS_MENU["Nom"].'</bg></li>';
				test_dossier($file);
				$le_repertoire = opendir($file)or die("Erreur le repertoire $repertoire existe pas");
				while($fichier = @readdir($le_repertoire))
				{
				 	if(ereg ($modelefile,$fichier) === false)
					{	
					}
					else
					{
						$fich=str_replace('.php','',$fichier);
						$page = $_SERVER['PHP_SELF'];				//permet de mettre la class link si on est sur la bonne page
						$arrayPage = explode ("/",$page);
						$tab = count ($arrayPage);
						$tab--;
						$part1 = $arrayPage[$tab];					//recupere le nom du fichier de la page courante
						$tab--;
						$part2 = $arrayPage[$tab];					//recuperer le dossier de la page courante.
						$Chem = $part2.'/'.$part1;					//creer le chemin de la page cournate.
						$bddChemin = $SS_MENU["Chemin"].'/'.$fichier;	//creer le chemin pour chaque fihier du repertoire
						if ($bddChemin == $Chem)
						{
							$Class = ' class="link"';
							$IDClass = str_replace(' ','',$SS_MENU["Menu"]);
							$IDClass = $IDClass.'2';
							echo ' <script> ChangeClass('.$IDClass.'); </script>';
						}
						else
						{
							$Class = ' class=""';
						}
						echo'<li><a'.$Class.' href="'.$url.''.$SS_MENU["Chemin"].'/'.$fichier.'">'.$fich.'</a></li>';
					}
				}
				closedir($le_repertoire);
			}
			else
			{
				$page = $_SERVER['PHP_SELF'];				//permet de mettre la class link si on est sur la bonne page
				$arrayPage = explode ("/",$page);
				$tab = count ($arrayPage);
				$tab--;
				$arraybdd = explode ("/",$SS_MENU["Chemin"]);
				$tabbdd = count ($arraybdd);
				$tabbdd--;
				if ($arraybdd[$tabbdd] == $arrayPage[$tab])
				{
					$Class = ' class="link"';
					$IDClass = str_replace(' ','',$SS_MENU["Menu"]);
					$IDClass = $IDClass.'2';
					echo ' <script> ChangeClass('.$IDClass.'); </script>';
				}
				else
				{
					$Class = ' class=""';
				}
				echo '<li><a'.$Class.' href="'.$url.''.$SS_MENU["Chemin"].'">'.$SS_MENU["Nom"].'</a></li>';
			}
		}
		echo '</ul>';
	}
echo '</div>';
et pour finir, ma fonctions javascript:

Code :
1
2
3
4
5
6
7
8
 
echo ' <script type="text/javascript">';
	echo ' function ChangeClass(IDMenu)';
	echo '{';
	echo ' document.getElementById(\'IDMenu\').className = \'link\';';
	echo ' alert(\'IDMenu\');';
	echo ' };';
echo ' </script>';

Or je voulait modifier la class de mes lien du menu suivant si je suis dans un sous menu ou nom.

Je n'est pas mit la fonction test_dossier qui ne fait que modifier la variable file afin que l'opendir fonctione.

Je tien a preciser que tout ce code fonctionne et que seul la fonction javascript ChangeClass ne fonctionne pas.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 12h25   #5
Membre éclairé
 
Avatar de kimjoa
 
Inscription : février 2009
Messages : 318
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : février 2009
Messages : 318
Points : 360
Points : 360
Tu devrais utiliser une librairie genre jquery.

Citation:
Or je voulait modifier la class de mes lien du menu suivant si je suis dans un sous menu ou nom.
Il te faut du css. Ajoute une classe à ton menu, puis un sélécteur sur celle-ci

Code :
1
2
3
4
5
6
7
8
9
 
//le ul racine
.menu{}
 
//le 1er niveau
.menu > li{color : withe;}
 
//les sous menu
.menu > li li{color : red;}
Pour tes fonctions afficheId et cacheId, si il s'agit que de modifier le style, tu peux le faire aussi en css, via la pseudo classe :hover

Sinon , y'a beaucoup de truc étonnant dans tons script. le fait que le contenue de tes pages ne soit pas en bd, le nombre de requête (une devrait suffir), l'utilisation de $_SERVER['PHP_SELF'] aussi, utilise des url relatives, la fonction js aussi, qui n'a rien de dynamique ect ....
Tu es sans doute débutant ... je te conseil vivement, de prendre un cms pour ton site, et le bon bouquin qui va avec
kimjoa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h53   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
freeman43, essaye de prendre la peine de lire Important : Les règles incontournables d'utilisation de ce forum et de poster le code HTML généré, le code PHP étant généralement inutile ici !
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h58   #7
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
en faite mon css et deja creer.
en suite le fichier que j'ai mit a mon dernier post et un fichier que j' inclus dans mes autres page web, car comme tu le dit, mes pages web sont bien gérer via une base de données.

si tu veux dans mon CSS, j'ai bien crée des class qui me permette justement de jouer sur mes styles.

Apres c sur que pour le moment, l'optimisation des mes requete pour gérer mes menu n'est peut etre pas optimiser au mieux, mais pour le moment, cas marche.

En ce qui concerne afficheId et cacheID, ce sont des fonctions qui me permette au survol des menu principaux, l'affichage des sous menu via la fonctions innerHTML, et celle-ci fonctionne tous a fait.

l'optimisation de celle-ci, se fera plus tard.

Donc le seul vrai souci, c'est que je n'arrive pas à appeler la fonctions afin de modifier la class du lien.

voila en faite ce que tu me demandé:

mon fichier css:

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
95
96
97
98
99
100
101
102
103
#Equipes{
display:none;
position:absolute;
top: 230px;
left: 191px;
width: 110px;
background-repeat:repeat-y;
border:1px solid #FFFFFF;
border-top: #FFFFFF 4px solid;
margin-bottom:5px;
margin-left:2px;
float:left;
}
 
#Ecolesdefoot{
display:none;
position:absolute;
top: 230px;
left: 265px;
width: 150px;
background-repeat:repeat-y;
border:1px solid #FFFFFF;
border-top: #FFFFFF 4px solid;
margin-bottom:5px;
margin-left:2px;
}
 
#Photos{
display:none;
position:absolute;
top: 230px;
left: 591px;
width: 100px;
background-repeat:repeat-y;
border:1px solid #FFFFFF;
border-top: #FFFFFF 4px solid;
margin-bottom:5px;
margin-left:2px;
}
 
#Historique{
display:none;
position:absolute;
top: 230px;
left: 734px;
background-repeat:repeat-y;
border:1px solid #FFFFFF;
border-top: #FFFFFF 4px solid;
margin-bottom:5px;
margin-left:8px;
}
 
#Admin{
display:none;
position:absolute;
top: 100px;
width:150px;
right:0px;
border:1px solid #FFFFFF;
border-top: #FFFFFF 4px solid;
text-align:left;
}
 
#administration a {
float:left;
width:100%;
background-image:url(css/back5.jpg);
}
#administration a.link {
float:left;
width:100%;
}
#administration a:hover {
float:left;
width:100%;
}
 
bg {
background-image:url(css/back.jpg);
}
 
#ss_menu{
float: left;
}
 
#ss_menu a {
color:#FF6600;
float:left;
width:100%;
background-image:url(css/back.jpg);
}
 
#ss_menu a.link {
color:#FFFFFF;
float:left;
width:100%;
}
 
#ss_menu a:hover {
color:#FFFFFF;					/* Les lien survole du menu auront un trait blanc*/
float:left;
width:100%;
}
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 13h59   #8
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Citation:
Envoyé par Bovino Voir le message
freeman43, essaye de prendre la peine de lire Important : Les règles incontournables d'utilisation de ce forum et de poster le code HTML généré, le code PHP étant généralement inutile ici !
Pardon, je ne l' avait pas lu, je penser que le code php était mieux que le code generer.

Je te prie de m'excuser.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 15h29   #9
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
J'avais zappé un truc...
Dans la fonction ChangeClasse, le paramètre passé à la méthode document.getElementById ne doit pas être entre apostrophes, sinon c'est l'élément ayant pour identifiant 'IDMenu' (ou null) qui est retourné.

Code php :
1
2
 
echo ' document.getElementById(IDMenu).className = \'link\';';
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 23h06   #10
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Apres plusieurs essaye, je n' arrive pas en faite a acceder a la fonctions qui me permet de modifier la class. Pourtant, pour acceder a la fonctions via php, il faut bien utiliser la syntaxe suivante:

Code :
<script> ChangeClass('.$IDClass.');</script>';
Et pourtant je n arrive pas a acceder a la fonctions.
Merci de bien vouloir m aider.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 23h10   #11
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Citation:
pour acceder a la fonctions via php
Tu ne peux pas accéder à une fonction JavaScript pendant le traitement PHP
Donc montre-nous le code HTML généré pour pouvoir voir quelle est la nature du problème.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 01h28   #12
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Voici le code generer par le script:
Code :
<script type="text/javascript"> function ChangeClass(IDMenu){ document.getElementById(IDMenu).className = 'link'; alert('IDMenu'); }; </script><div id="menu"><ul><li onmouseover="cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('Acceuil');"<a id="Acceuil2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/index.php">Acceuil</a></li><li onmouseover="cacheId('Acceuil');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('News');"<a id="News2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/News.php">News</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('Equipes');"<a id="Equipes2"  class="">Equipes</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('Ecolesdefoot');"<a id="Ecolesdefoot2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/EcolesdeFoot.php">Ecoles de foot</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('Convocations');"<a id="Convocations2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Convocations.php">Convocations</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('Calendriers');"<a id="Calendriers2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Calendriers.php">Calendriers</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Sponsors');cacheId('Historique');cacheId('NousContacter');afficheId('Photos');"<a id="Photos2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Photos.php">Photos</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Historique');cacheId('NousContacter');afficheId('Sponsors');"<a id="Sponsors2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Sponsors.php">Sponsors</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('NousContacter');afficheId('Historique');"<a id="Historique2"  class="">Historique</a></li><li onmouseover="cacheId('Acceuil');cacheId('News');cacheId('Equipes');cacheId('Ecolesdefoot');cacheId('Convocations');cacheId('Calendriers');cacheId('Photos');cacheId('Sponsors');cacheId('Historique');afficheId('NousContacter');"<a id="NousContacter2"  class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Contacter.php">Nous Contacter</a></li></ul></div><div id="ss_menu"><ul id="Ecolesdefoot" onmouseover="afficheId('Ecolesdefoot');" onmouseout="cacheId('Ecolesdefoot');"><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U6-U7.php">Pr&eacute;-D&eacute;butants(U6-U7)</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U8-U9.php">D&eacute;butants (U8-U9)</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U10.php">Poussins(U10)</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U11.php">Poussins(U11)</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U12-U13.php">Benjamins (U12-U13)</a></li></ul><ul id="Equipes" onmouseover="afficheId('Equipes');" onmouseout="cacheId('Equipes');"><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/Equipes.php">Promotions</a></li> <script> ChangeClass(Equipes2); </script><li><a class="link" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/2emeDiv.php">2eme Divisions</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U15.php">U15</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2010_2011/U14.php">U14</a></li></ul><ul id="Historique" onmouseover="afficheId('Historique');" onmouseout="cacheId('Historique');"><li style="color:#FFFFFF;"><bg>Saison 2009 2010</bg></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/2emeDiv.php">2emeDiv</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/Promotion.php">Promotion</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/U10-U11.php">U10-U11</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/U12-U13.php">U12-U13</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/U15.php">U15</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/U7-U8.php">U7-U8</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Saison2009_2010/U9-U10.php">U9-U10</a></li></ul><ul id="Photos" onmouseover="afficheId('Photos');" onmouseout="cacheId('Photos');"><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Photos.php">Photos</a></li><li><a class="" href="http://mbp-franck-marrel.local/~franckmarrel/FCS1PO/FCS1POwebdesignV4/Videos.php">Vid&eacute;os</a></li></ul></div>        </div>
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 03h49   #13
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Ligne 17 du code du menu (post #4)
Il faut fermer la balise li.
Code php :
echo 'afficheId(\''.$Var2.'\');">';

Ligne 67 du code du sous-menu (post #4)
Ici c'est le paramètre d'appel à la fonction qui doit être placé entre apostrophes.
Code php :
echo '<script> ChangeClass(\''.$IDClass.'\'); </script>';
Je ne vois rien d'autre pour l'instant.
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 09h56   #14
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
moi j'ai repéré ça :
Code php :
1
2
3
4
5
6
7
echo ' <script>';
	echo ' ChangeClass(IDMenu)';
	echo '{';
	echo ' document.getElementById(\'IDMenu\').className = \'link\';';
	echo ' alert(\'IDMenu\');';
	echo ' };';
echo ' </script>';
manque le mot clef function
Code php :
1
2
3
4
5
6
7
echo ' <script>';
	echo 'function ChangeClass(IDMenu)';
	echo '{';
	echo ' document.getElementById(\'IDMenu\').className = \'link\';';
	echo ' alert(\'IDMenu\');';
	echo ' };';
echo ' </script>';
Ensuite ça ne sert à rien de généré ça en php c'est un code qui ne dépends pas de php donc on le fait en js et un simple
Code html :
<script src="menu.js" type="text/javascript"></script>
pour inclure le js suffit

ça n'a l'air de rien mais un js généré par php dans la page est re-compilé par le navigateur à chaque appel alors que celui qui est lié statiquement n'est chargé qu'une fois.

mais en surtout ton code géné est:
Code :
1
2
3
4
5
function ChangeClass(IDMenu)
{
 document.getElementById('IDMenu').className = 'link';
 alert('IDMenu');
}
Ce code ne peux pas marcher car si tu appelle
Code :
ChangeClass("l'id_de_mon_menu");
tu fais un
Code :
document.getElementById('IDMenu')
donc l'élément que tu obtient s'il existe est celui don l'id est "IDMenu" et non celui dont l'id est "l'id_de_mon_menu"
pour que ça fonctionne il faut peut être utiliser la variable passé en paramètre.
Code :
1
2
3
4
5
function ChangeClass(IDMenu)
{
 document.getElementById(IDMenu).className = 'link';
 alert(IDMenu);
}

voilà une raison de plus de NE JAMAIS générer le javascript en php.
Je n'ai à ce jour JAMAIS, pas une fois depuis que js existe, trouvé UN SEUL cas où on ne peut pas utiliser un code js statique à la place d'un code généré. PAS UN SEUL CAS!!!

Je dis donc simplement "Ne générez jamais de codes javascript"
en écrivant les codes dans des fichiers js vous gagnerez en clarté, en maintenabilité, en évolutivité, et vous éviterez ce genre de bug.

quant au code de la page html c'est aussi simple que
Code php :
1
2
3
4
5
<li><a
 class="<?php echo $Class;?>"
 href="<?php echo $url;"
 idMenu="<?php echo $idMenu;?>"
 onclick="return ChangeClass(this.idMenu);">blabla</a></li>

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 13h31   #15
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
Salut,
Tous d abord, merci de votre aide.
Sekaijn, j'ai mit ma fonction javascript en dehors de mon code php.
Pourquoi, je doit mettre un evenement onclick car lorsque je fait ca la page va etre recharger et donc ca ne changera pas la classe de mon menu.

Merci de m eclairer.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2011, 02h17   #16
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
le on click est là pour illustrer qu'on peut se passer de mélanger js et php même sur des événements

A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 14h28   #17
Invité régulier
 
Inscription : avril 2007
Messages : 41
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 41
Points : 6
Points : 6
D' accord.

Bon finalement pour detecter sur quel page j'etait, j'ai arretez cette methode et j' ai carrement faire le test non plus en php, mais en javascript ou l execution de la fonction se fait au chargement de la page en faisant un settimeout afin que le fonction s execute quand le code de la page et totalement generer.

En tout cas merci de votre aide car ca bien aider.
freeman43 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h48.


 
 
 
 
Partenaires

Hébergement Web