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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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 : 55
    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%;
    }

+ 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