IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Javascript et PHP.


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    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

  3. #3
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<script type="text/javascript">';
    echo 'function ChangeClass(IDMenu)';

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : 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
     
    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 : 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
     
    +----+------------------------------------+-----------------------------+------+----------------+
    | 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 : 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
     
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2009
    Messages : 354
    Par défaut
    Tu devrais utiliser une librairie genre jquery.

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    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 : 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
    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%;
    }

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    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.

  9. #9
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ' document.getElementById(IDMenu).className = \'link\';';

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <script> ChangeClass('.$IDClass.');</script>';
    Et pourtant je n arrive pas a acceder a la fonctions.
    Merci de bien vouloir m aider.

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    Voici le code generer par le script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <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>

  13. #13
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Ligne 17 du code du menu (post #4)
    Il faut fermer la balise li.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<script> ChangeClass(\''.$IDClass.'\'); </script>';
    Je ne vois rien d'autre pour l'instant.

  14. #14
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    moi j'ai repéré ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    ChangeClass("l'id_de_mon_menu");
    tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  15. #15
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    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.

  16. #16
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    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

  17. #17
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Javascript ou PHP
    Par lynchmaniac dans le forum Langage
    Réponses: 7
    Dernier message: 27/10/2005, 10h10
  2. [PHP-JS] Javascript et PHP: passer une valeur en paramètres
    Par anutka dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/10/2005, 12h05
  3. Cherche conseils pour livre HTML, JavaScript et PHP
    Par oodini dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 16/10/2005, 15h45
  4. [PHP-JS] convertir un bout javascript en php ?
    Par Thierry8 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/08/2005, 23h42
  5. [PHP-JS] lien javascript vers php
    Par guttts dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/08/2005, 23h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo