Probleme javascript php
davlebio
-
dodoecchi Messages postés 449 Date d'inscription Statut Membre Dernière intervention -
dodoecchi Messages postés 449 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un problème d'affichage avec un script javascript et php le mouseover ne fonctionne pas je joins les fichiers
merci de votre aide
fichier php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Menu vertical déroulant vers la droite</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
<?php
//ici les parametres pour la connexion
$host="sql.free.fr"; $base="mabase"; $passe="monmotdepasse";
//on effectue la connexion
@mysql_connect("$host","$base","$passe");
//Selection de la base de données qui porte le meme nom que votre login
$select_base=@mysql_selectdb("$base");
?>
<div id="menu">
<?php
$compt=1;
$requete_section=mysql_query("select * from section order by position_section");
while ($row=mysql_fetch_array($requete_section))
{
$menu1="menu".$compt;
$sous1="sousmenu".$compt;
?>
<div class="menu" id="<?php echo $menu1; ?>" onmouseover="affiche(this)">
<?php
echo"<a href=\"#\">".$row["nom"]."</a>";
$requete_session=mysql_query("select * from session where section=".$row["id"]." and visible=1 order by position_page");
$compte=mysql_num_rows($requete_session);
if ($compte="0") echo "";
else{
?>
<div class="sousmenu" id="<?php echo $sous1; ?>" style="display:none" onmouseout="affiche(this)">
<?php
while ($row_session=mysql_fetch_array($requete_session))
{
echo"<div><a href=\"#\">".$row_session["nom"]."</a></div>";
}
echo"</div>";
}
echo"</div>";
$compt=$compt+1;
}
?>
</div>
<div id="content">
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
</div>
</body>
</html>
fichier javascript
function affiche(obj){
var id = obj.id;
for(var i = 1; i <= 2; i++){
document.getElementById('sousmenu'+i).style.display = "none";
}
if(document.getElementById('sous'+id)){
document.getElementById('sous'+id).style.display = "block";
}
}
j'ai un problème d'affichage avec un script javascript et php le mouseover ne fonctionne pas je joins les fichiers
merci de votre aide
fichier php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Menu vertical déroulant vers la droite</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
<?php
//ici les parametres pour la connexion
$host="sql.free.fr"; $base="mabase"; $passe="monmotdepasse";
//on effectue la connexion
@mysql_connect("$host","$base","$passe");
//Selection de la base de données qui porte le meme nom que votre login
$select_base=@mysql_selectdb("$base");
?>
<div id="menu">
<?php
$compt=1;
$requete_section=mysql_query("select * from section order by position_section");
while ($row=mysql_fetch_array($requete_section))
{
$menu1="menu".$compt;
$sous1="sousmenu".$compt;
?>
<div class="menu" id="<?php echo $menu1; ?>" onmouseover="affiche(this)">
<?php
echo"<a href=\"#\">".$row["nom"]."</a>";
$requete_session=mysql_query("select * from session where section=".$row["id"]." and visible=1 order by position_page");
$compte=mysql_num_rows($requete_session);
if ($compte="0") echo "";
else{
?>
<div class="sousmenu" id="<?php echo $sous1; ?>" style="display:none" onmouseout="affiche(this)">
<?php
while ($row_session=mysql_fetch_array($requete_session))
{
echo"<div><a href=\"#\">".$row_session["nom"]."</a></div>";
}
echo"</div>";
}
echo"</div>";
$compt=$compt+1;
}
?>
</div>
<div id="content">
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
</div>
</body>
</html>
fichier javascript
function affiche(obj){
var id = obj.id;
for(var i = 1; i <= 2; i++){
document.getElementById('sousmenu'+i).style.display = "none";
}
if(document.getElementById('sous'+id)){
document.getElementById('sous'+id).style.display = "block";
}
}
Configuration: Windows XP Firefox 3.0.11
3 réponses
-
si tu veux qu'on t'aide sur du XHTML / Javascript
va falloir nous donner le XHTML et du javascript en question
...pas du php
Donne moi une page de résultat et je pourrais faire quelque chose
parce que moi j'ai pas ta base de données ici
Dorian-
voila le fichier en php
<head>
<title>Menu vertical déroulant vers la droite</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="style.css" type="text/css" />
<script type="text/javascript" src="functions.js"></script>
</head>
<body>
<div id="menu">
<div class="menu" id="menu1" onmouseover="affiche(this)">
<a href="#">Accueil</a><div class="sousmenu" id="sousmenu1" style="display:none" onmouseout="affiche('menu1');">
</div></div> <div class="menu" id="menu2" onmouseover="affiche(this)">
<a href="#">La mairie</a><div class="sousmenu" id="sousmenu2" style="display:none" onmouseout="affiche('menu2');">
<div><a href="#">Le conseil municipal</a></div><div><a href="#">Les commissions</a></div><div><a href="#">Les syndicats</a></div><div><a href="#">Les comptes rendus</a></div><div><a href="#">Le Lien</a></div><div><a href="#">Démarche administrative</a></div></div></div> <div class="menu" id="menu3" onmouseover="affiche(this)">
<a href="#">La Commune</a><div class="sousmenu" id="sousmenu3" style="display:none" onmouseout="affiche('menu3');">
<div><a href="#">présentation</a></div><div><a href="#">situation</a></div><div><a href="#">Histoire</a></div></div></div> <div class="menu" id="menu4" onmouseover="affiche(this)">
<a href="#">Activités</a><div class="sousmenu" id="sousmenu4" style="display:none" onmouseout="affiche('menu4');">
<div><a href="#">les artisans</a></div><div><a href="#">Les associations</a></div><div><a href="#">Les commerçants</a></div></div></div> <div class="menu" id="menu5" onmouseover="affiche(this)">
<a href="#">Actualités</a><div class="sousmenu" id="sousmenu5" style="display:none" onmouseout="affiche('menu5');">
<div><a href="#">Actualités</a></div></div></div> <div class="menu" id="menu6" onmouseover="affiche(this)">
<a href="#">Agenda </a><div class="sousmenu" id="sousmenu6" style="display:none" onmouseout="affiche('menu6');">
<div><a href="#">Agenda 2009</a></div></div></div> <div class="menu" id="menu7" onmouseover="affiche(this)">
<a href="#">Salle polyvalente</a><div class="sousmenu" id="sousmenu7" style="display:none" onmouseout="affiche('menu7');">
<div><a href="#">Règlement interieur</a></div><div><a href="#">Tarifs </a></div><div><a href="#">Plan</a></div></div></div>
</div>
<div id="content">
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
Ici le site<br />
</div>
</body>
</html>
-
-
essayes en mettant:
=affiche(this.id);"
ou
="affiche('<?php echo $menu1; ?>');" -
peut être parce que le onmouseover est sur un div et que le onmouseout est sur les liens qui sont dans le div. donc peut être que l'évenement onmouseover du div bloque le onmouseout du lien
je remarque quand même que ton menu tu le fais d'une manière bizarre