Bonjour,

Tout d'abord je tiens à vous remercier pour ce menu, très simple à mettre en place et de plus qui est juste ce que je voulais.

Mais, (il y en a toujours mais), à partir du 11ème menu déclaré, celui-ci reste ouvert faisant apparaître les sous-menus sans que je puisse les refermer. Ceci pour tout les autres menu à partir de celui-là.

Je ne vois pas ou est le problème pourtant, j'ai bien vérifié la syntaxe, et je vois pas.

Est-ce que quelqu'un à une idée???

Voici la page ou j'ai eu le script:
Un menu déroulant en CSS et XHTML (horizontal et vertical) lien édité par Igor

J'utilise le menu vertical.

Merci d'avance,

Sébastien.
Modifié par slefevre77 (05 Aug 2006 - 12:22)
Salut.

Ce ne serait pas parce que les sous menu ne sont déclarés que jusqu'au 10e dans le code javascript ?

<script type="text/javascript">
<!--
window.onload=montre;
function montre(id) {
var d = document.getElementById(id);
	for (var i = 1; [#red][b]i<=10[/b][/#]; i++) {
		if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
	}
if (d) {d.style.display='block';}
}
//-->
</script>


Remplace le 10 par 15 Smiley cligne
Oui, c'était juste çà!

Il était tard, j'avais pas vu, le mieux que j'ai fait c'est d'aller me coucher.

En tout cas çà marche, merci.

Smiley biggrin
Bon, vu que mon problème était résolu, je me suis dit que les fonctions:

onmouseover et onmouseout

c'était bien pour moi, plus jolie et tout...

Je les ai mises en place, mais voilà, lorsque j'incorpore le menu à ma page, en faisant un include, celui-ci s'affiche ouvert, ou tout développé.

<?php include('menu3.php'); ?>

Une fois que j'ai positionné le curseur de la souris dessus, tout rentre dans l'ordre.

Si j'affiche la page contenant le menu seule, cela fonctionne.

Smiley confus
Modifié par slefevre77 (05 Aug 2006 - 12:14)
Re.

Il doit y avoir une erreur dans l'appel de ton script ...

Comment as-tu inséré le javascript ? Si ça fonctionne quand tu affiches le menu seul, cela signifie que tu dois avoir un lien vers le code dans ce fichier. Mais comme les liens vers une feuille javascript ou les fonctions javascript doivent être déclarées dans le <head>, il y a forcément un problème.

Tu n'as pas un exemple en ligne ? Ou le code source de la page générée par ton serveur après interprétation du PHP ?
Salut !

Je m'y attendais Smiley cligne ! L'include PHP est correct. Par contre, ce qui ne va pas, c'est la présence du doctype, des balises <html>, <head> & <body> dans le fichier menu3.php.

Il faut bien comprendre qu'utiliser PHP pour inclure un fichier dans sa page, ce n'est pas la même chose que de réaliser un frameset : les différentes parties de la page ne sont pas des documents HTML à part entière, mais uniquement des pièces ou des morceaux de code que l'on colle tous ensemble pour obtenir le document final ! C'est ce document final, et lui seul, qui est une page html, et qui doit donc posséder un doctype et la structure <html> - head - body - </html>.

Il suffit de regarder le code source de ta page complète pour se rendre compte du chaos qui règne dans ta structure html Smiley cligne

Pour corriger, il faut donc déporter le début du fichier menu3.php, contenant le code javascript, le doctype, et tout ce qui n'a rien à faire dans le corps d'une page html, vers la page principale, dans laquelle tu utilises l'include. Au final, le code de la page générée doit être propre. (Il suffit de lui passer un petit coup de validateur pour vérifier que tout est bien corrigé Smiley cligne )

Si ça ne marche toujours pas après ça, on en reparle Smiley ravi

Bon boulot !
Modifié par Sopo (06 Aug 2006 - 14:57)
Bonjour,

Tu m'en as appris beaucoup, merci pour m'avoir aiguillé, en effet c'est le chaos. Je suppose que je ne devrais pas avoir plusieurs balises <HEAD> </HEAD>, de même pour <BODY> </BODY>.
Mais j'ai fais 4 include et donc 4 fois la même erreur.

Donc je revois tout et je te tiens au courant.

Smiley smile
Voilà,

J'ai fait le test avec cette page là:

http://www.domunix.org/index_ie_1680.php

Ca marche Smiley biggrin !!!

Le code semble être propre.

Petites questions:

1. Dans mes pages appelées avec INCLUDE, faut-il mettre au débur et à la fin:
<html> et </html> ???

2. Dans ma page principale, puis-je faire un fichier .css qui contient les <style> ... </style> et ou <script> ... </script>.
Si oui comment faire pour inclure ce .css dans la page???


Merci d'avance,

Sébastien.
Salut

C'est mieux, mais il reste encore des bouts de Javascript déclarés un peu partout, ça fait un peu désordre Smiley cligne

1/ Non, il ne faut pas ajouter les balises <html> dans les fichiers à inclure, puisqu'on ne peut en avoir qu'une seule par page.

2/ Les styles et les fonctions javascripts peuvent effectivement être conservés dans des fichiers séparés (c'est même en général reccomandable, c'est plus clair et plus facile à maintenir, notamment).

Pour les css, un fichier style.css placé dans le même répertoire que la page principale sera appellé comme ceci
<head>
   <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
   ...
</head>


Pour du code javascript, on le place dans un fichier .js, par exemple "scripts.js". S'il est également dans le même répertoire que la page où on l'appelle :
<script type="text/javascript" src="scripts.js"></script>
Cette ligne doit également se trouver dans le <head>.
Ok, je vais me mettre au boulot ! Smiley cligne

Merci pour ta clareté, çà fait plaisir d'avoir quelqu'un de compétant.

@+,

Sébastien