Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script ok sous XP mais pas sous Vista

    4 avril 2009 à 15:43:43

    Bonjour,

    mon problème est simple: un menu "accordéon" (à base de php et une seule fonction js de 12 lignes, un peu de css) qui fonctionnait sans aucun problème sous XP ne fonctionne absolument plus sous Vista (quelque soit le navigateur et javascript activé).
    Cela doit être un problème de droits mais je ne vois pas où.
    Si quelqu'un a une idée...
    Merci par avance.
    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2009 à 19:42:21

      Page locale (C:\Docu..) ou internet (http://127.0.0.1.. || http://unsite..) ?
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2009 à 19:46:02

        Et puis avec le code ça serait mieux :)
        • Partager sur Facebook
        • Partager sur Twitter
          5 avril 2009 à 22:25:41

          Bonsoir,

          le problème est en local (localhost).
          Voici le code (qui fonctionne parfaitement sous XP):
          Le php:
          <html>
          
          	<head>
          
          		<link href="./css/menu.css" rel="stylesheet" type="text/css" />
          
          		<script type="text/javascript" src="./js/menu.js"></script>
          
          	</head>
          
          	
          
          	<body>
          
          <?php
          
          session_start();
          
          include('base.cnx.php');
          
          include('session.php');
          
          
          
          switch($_SESSION['Profil_Id']){
          
          	case 1:
          
          		$sqlTheme="select * from theme where thAdm=1 order by 1";
          
          		break;
          
          	case 2:
          
          		$sqlTheme="select * from theme where thRC=1 order by 1";
          
          		break;
          
          	case 3:
          
          		$sqlTheme="select * from theme where thRP=1 order by 1";
          
          		break;
          
          	case 4:
          
          		$sqlTheme="select * from theme where thArcher=1 order by 1";
          
          		break;
          
          	default:
          
          		$sqlTheme="select * from theme where thArcher=1 order by 1";
          
          }
          
          $rqTheme=mysqli_query($cnx,$sqlTheme);
          
          
          
          while($dataTheme=mysqli_fetch_assoc($rqTheme)){
          
          	echo "<ul id='nav'>";
          
          		echo "<li>".$dataTheme['thlibelle'];
          
          		echo "<ul>";
          
          		switch ($_SESSION['Profil_Id']){
          
          			case 1:
          
          				$sqlMenu="select * from menu where metheme=".$dataTheme['thnum']." and meAdm=1 order by merang";
          
          				break;
          
          			case 2:
          
          				$sqlMenu="select * from menu where metheme=".$dataTheme['thnum']." and meRC=1 order by merang";
          
          				break;
          
          			case 3:
          
          				$sqlMenu="select * from menu where metheme=".$dataTheme['thnum']." and meRP=1 order by merang";
          
          				break;
          
          			case 4:
          
          				$sqlMenu="select * from menu where metheme=".$dataTheme['thnum']." and meArcher=1 order by merang";
          
          				break;
          
          			default:
          
          				$sqlMenu="select * from menu where metheme=".$dataTheme['thnum']." and meArcher=1 order by merang";
          
          		}
          
          		$rqMenu=mysqli_query($cnx,$sqlMenu);
          
          		while($dataMenu=mysqli_fetch_assoc($rqMenu)){
          
          			echo "<a href='".$dataMenu['mehref']."'<li>".$dataMenu['melibelle']."</li></a>";
          
          		}
          
          		echo "</ul>";
          
          	echo "</ul>";
          
          	}
          
          ?>
          
          	</body>
          
          </html>
          


          le code javascript:
          sfHover = function() {
          
          	var sfEls = document.getElementById("nav").getElementsByTagName("li");
          
          	for (var i=0; i<sfEls.length; i++) {
          
          		sfEls[i].onmouseover = function() {
          
          			this.className+=" sfhover";
          
          			}
          
          			sfEls[i].onmouseout=function() {
          
          				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
          
          			}
          
          		}
          
          	}
          
          	if (window.attachEvent) window.attachEvent("onload", sfHover);
          


          le code css:
          body {
          
          font: 1em Arial, Helvetica, sans-serif;
          
          background-color: #eee; }
          
          
          
          #nav, #nav ul { /* all lists */
          
          padding: 0;
          
          margin: 0;
          
          list-style: none;
          
          text-decoration: none;
          
          line-height: 1.2; 
          
          }
          
          
          
          #nav a, #nav li a {
          
          display: block;
          
          width: 10em;
          
          text-decoration: none;
          
          }
          
          
          
          #nav li { /* all list items */
          
          float: left;
          
          width: 10em; /* width needed or else Opera goes nuts */
          
          }
          
          
          
          #nav li ul { /* second-level lists */
          
          position: abolute;
          
          background: orange;
          
          width: 10em;
          
          left: -999em;  /* using left instead of display to hide menus because display: none isn't read by screen readers */
          
          }
          
          
          
          #nav li:hover ul, #nav li.sfhover ul { /* lists nested under hovered list items */
          
          left: auto;
          
          }
          
          
          
          #content {
          
          clear: left;
          
          color: #ccc;
          
          }
          


          Merci pour le coup de main.
          • Partager sur Facebook
          • Partager sur Twitter
            7 avril 2009 à 0:16:29

            As-tu bien le module mysqli d'installer sur tes deux serveurs au moins? XP et Vista

            Ensuite include('session.php') Si t'as un session_start dedans, s'foutu, faut rien avant.

            En bref, c'est un probleme de php normalement, pas de javascript.
            • Partager sur Facebook
            • Partager sur Twitter

            Script ok sous XP mais pas sous Vista

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown