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

Langage PHP Discussion :

[PHP-JS] Problème dans un menu dynamique


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut [PHP-JS] Problème dans un menu dynamique
    Voila le fichier menu2.php qui me permet normalement de générer le menu déroulant.
    Avant de générer le menu à partir de tables afin de le rendre dynamique, le résultat était le suivant : http://lbd56.free.fr
    (menu droit)
    Depuis que j'ai changé mon fichier menu2.php, afin de le rendre dynamique le menu reste figé( voir photo jointe), avec tous les liens qui sont affichés simultanément.
    Voici le script :

    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
    <script type="text/javascript">                                                  <!-- Début script JavaScript-->
    window.onload=montre;  <!-- fonction JS -->
    function montre(id) {
        var d = document.getElementById(id);                                         <!-- on récupère dans la variable d le nombre d'élèments -->
            for (var i = 1; i<=10; i++) {                                            <!-- pour i, de 1 à 10, si on a un sous menu, on l'affiche : cela formera le menu déroulant -->
                if (document.getElementById('smenu'+i)) {document.getElementById('smenu'+i).style.display='none';}
            }
        if (d) {d.style.display='block';}
    }
     
    </script>                                                                        <!-- Fin du script JavaScript-->
     
    <dl id="menu2">
     
                 <?php
     
                      $recup_num_categorie="SELECT * FROM categorie WHERE num_categorie<>'NULL';";
                      if (!($res_recup_num_categorie=mysql_query($recup_num_categorie,$GLOBALS['lien'])))
                         {
                              echo "Problème de requête dans la récupération des catégories de familles de produits".
                              $res_recup_num_categorie."<BR>";
                              echo mysql_error($GLOBALS['lien']);exit;
                        }
                    $smenu=1;
     
                    while ($rep=mysql_fetch_row($res_recup_num_categorie)) {         // Tant qu'il y a des réponses à la requête, on récupère les informations suivantes de la base, puis on les afficher par le script HTML suivant    
                        $codecat=$rep[0];
                        $libellecat=$rep[2];
                        echo "<dt onmouseout=\"javascript:montre();\"
                        onmouseover=\"javascript:montre(\'smenu.$smenu\');\">";
                        echo "$libellecat";
                        echo " </a></dt>";
                        echo "<dd id=\"smenu.$smenu\" onmouseout=\"javascript:montre();\"
                        onmouseover=\"javascript:montre(\'smenu.$smenu\');\">";
                        echo "<ul>";
     
                        $recup_num_famille="SELECT * FROM famille_produit WHERE num_categorie='$codecat';";
                         if (!($res_recup_num_famille=mysql_query($recup_num_famille,$GLOBALS['lien'])))
                         {
                              echo "Problème de requête dans la récupération des familles de produits".
                              $res_recup_num_famille."<BR>";
                              echo mysql_error($GLOBALS['lien']);exit;
                         }
     
                            while ($rep_code_fam=mysql_fetch_row($res_recup_num_famille)) { 
                            $codefam=$rep_code_fam[0];
                            $libellefam=$rep_code_fam[1];
                            echo "<li><a href='pageproduit.php?u=0&ref=$codefam'>$libellefam</a></li>";
                            }
                        echo "</ul>";
                        echo "</dd>";
     
                        $smenu+=1;
                    }
                ?>              
    </dl>

    Si quelqu'un pouvait m'aider, se serait avec plaisir!!!!
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    en ce moment, l'url que tu as fournie est celle qui contient le nouveau code ou pas?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut
    Non c'est le résultat que j'aimerai obtenir ca justement sur l'url. C'est ce que j'avais avant que je modifie le code pr qu'il soit dynamique.

  4. #4
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    Je pense que le problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<dt onmouseout=\"javascript:montre();\"
                        onmouseover=\"javascript:montre(\'smenu.$smenu\');\">";
    Ici tu protèges les single quotes de smenu.$menu et c'est mal !

    Du coup, JS ne sait plus l'interpréter...

    Si tu fais un echo() avec des double quotes, il est inutile de protéger les simples, et inversement.

    Fais les corrections sur ton code et dis-moi si ça marche !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut
    J'ai fais les modifications aux 2 endroits et c'est tjs pareil...snifff lol

  6. #6
    Membre chevronné Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Par défaut
    et en te passant de Peux-tu poster le code source interprété de ton menu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2007, 08h57
  2. [PHP-JS] Problème avec un menu déroulant
    Par nsimon dans le forum Langage
    Réponses: 2
    Dernier message: 11/02/2007, 19h00
  3. [PHP-JS] Problème avec un menu déroulant
    Par grumly22 dans le forum Langage
    Réponses: 3
    Dernier message: 09/05/2006, 11h07
  4. [PHP-JS] Ecrire dans un javascript dynamiquement 'echo'
    Par nono3000 dans le forum Langage
    Réponses: 6
    Dernier message: 23/12/2005, 15h17
  5. [Free Pascal] Intégrer des valeurs dans un menu dynamique
    Par boullery dans le forum Free Pascal
    Réponses: 16
    Dernier message: 30/03/2005, 17h04

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