Bonjour,

J'essaye de faire un sous menu caché.
J'ai placé dans mon head le script java suivant :

	<script type="text/javascript">
		function AfficherCacher(sousmenu1) 
		{
			var sousmenu1 = document.getElementById(sousmenu1).style.display;
			if (sousmenu1 == "block") 
			{
				document.getElementById(sousmenu1).style.display = "none";
			}
			else 
			{
				document.getElementById(sousmenu1).style.display = "block";
			}
		}
</script>


Les informations menu / sous menu sont chargé via requete bdd que je charge en echo.
Mon probleme, je ne parviens pas à appeler mon script pour afficher le sous menu.
Je pense que mon probleme vient de la syntaxe de mon echo quand j'appelle le script (fonction applé va onclick) :


$query = $bd->execRequete("SELECT * from famille order by libelle ASC");
	if($bd->nombreResultat($query)<>0){
		while($row = $bd->objetsuivant($query)){
													
			echo "<ul ><li> <a href=# onclick='AfficherCacher(sousmenu1); return false'>".$row->libelle."</a>";
			echo "<ul id=sousmenu1 style=display:none>";
			$query2 = $bd->execRequete("SELECT * from sous_famille where idfamille='".$row->idfamille."' order by libelle ASC");
				if($bd->nombreResultat($query2)<>0){
					while($row2 = $bd->objetsuivant($query2)){
										
						$query3 = $bd->execRequete("SELECT * from article where idsous_famille='".$row2->idsous_famille."' ");
							if($bd->nombreResultat($query3)<>0){
								echo "<li><a href='".htmlspecialchars("Accueil.php?n=11&typ=f&f=".$f."&sf=".$row2->idsous_famille."")."' class=\"menu_gauche\">".htmlentities($row2->libelle)."</a></li>";
										}
										
									}
																		
								}	
							echo "</ul>";	
							echo "</li></ul>";
						}
												
					}


Je suis débutant et je ne connais pas le java donc ca aide pas ^^
J'essaie de trouver sur internet, mais quoi que je fasse je ne parviens pas à appeler mon script.
Modifié par Pouick (11 Oct 2019 - 09:40)
Salut

Effectivement,
echo "<ul ><li> <a href=# onclick='AfficherCacher(); return false'>".$row->libelle."</a>";

cette ligne n'est pas correct.

AfficherCacher(sousmenu1)
Qu'est ce que sousmenu1 ?
J’imagine que c'est l'id de ton sous menu

Car tu essaye de le récupérer avec document.getElementById(sousmenu1).style.display;

Dans ce cas... tu as juste à faire
echo "<ul ><li> <a href=# onclick='AfficherCacher(); return false'>".$row->libelle."</a>";
(j'ai enlevé sousmenu1 ici, car tu connais l'id en faite. à moins d'avoir 4 sous menu dynamique, dans ce cas il faut que l'id tu le stock dans une variable et que tu l'ajoute ici)

Et en js
function AfficherCacher() {//blabla}

avec
 document.getElementById('sousmenu1').style.display;

Modifié par JENCAL (11 Oct 2019 - 14:26)
Merci pour ton retour malheureusement, malgré les modifs apportées, mes sous-menu restent cachés Smiley ohwell

Je ne vois pas ce qui cloche...

Effectivement, Sousmenu1 est l'id de mon sous menu.

Je suis en PHP 5 peut etre est ce dû à ma version ?
Modifié par Pouick (11 Oct 2019 - 18:01)