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

JavaScript Discussion :

Bug si je déclare des variables inutilisées


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Par défaut Bug si je déclare des variables inutilisées
    Bonjour, Le contexte est le suivant :
    J'utilise en php une boucle "while" afin d'afficher un certain nombre de menu (avec toggle).

    Je n'y connais rien en Java.
    Le nombre de menu est donc indéfini et peut varier entre 0 et 10.

    J'ai réussi à modifier le script java afin d'afficher les plusieurs menus.
    Le problème c'est que je déclare en java des variables (donc 10) qui ne sont pas toutes utilisées.

    Et dans ce cas les menus toggle ne fonctionne pas.

    J'ai une variable sur ma page PHP qui m'indique le nombre de menu à afficher.
    Mais je n'arrive pas à la récupéré dans le script Java.

    La page PHP :
    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
     
    <head>
    	<script type="text/javascript" src="mootools.js"></script>
    	<script type="text/javascript" src="demo.js"></script>
    </head>
     
    <?
    echo "<strong>Questions : </strong><br /><br />";
    $reqcomi2q = mysql_query("SELECT * FROM qr WHERE titre = '".$data['titre']."' && qr = 1");   	
    while ($myrowq = mysql_fetch_array($reqcomi2q)) {
                    $jing = $jing+1 ;               /* $jing indique le nombre de menu */
    			    $jong = "v_toggle$jing";
    				$jung = $jung+1 ;
    				$jang = "vertical_slide$jung";
    	echo '<div class="marginbottom">';
    		echo "<a id='$jong' href='#'>".$myrowq["texte"]."</a>";
    	echo '</div>';
    	echo "<div id='$jang'>";
    		echo $myrowq["pres"];
    		echo '</div>';
    		        $jung = $jung+1 ;
    				$jang = "vertical_slide$jung";
    	echo "<div id='$jang'>";
    		echo 'REPONSSE';
    	echo '</div><br>';
    	}
    ?>
    Le script Java (extrait) demo.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var myVerticalSlide1 = new Fx.Slide('vertical_slide1').hide();
    ...
    var myVerticalSlide10 = new Fx.Slide('vertical_slide10').hide();
    Avez vous une idée?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Je n'y connais rien en Java.
    ça tombe bien moi non plus, masi c'est une chance ton code est en javascript ...


    pas toutes utilisées ?
    faudrait eclaircir un peu ce point ...

    tu parles de cette partie là ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var myVerticalSlide1 = new Fx.Slide('vertical_slide1').hide();
    ...
    var myVerticalSlide10 = new Fx.Slide('vertical_slide10').hide();
    pourquoi declarer 10 menu si tu n'en utilise que 6 ?
    fais une boucle qui n'en declare que 6
    sinon il va falloir aller bidouiller dans motools pour rajouter un test d'existence ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    pourquoi declarer 10 menu si tu n'en utilise que 6 ?
    fais une boucle qui n'en declare que 6
    C'est justement ce que j'aimerais faire, en utilisant la variable $jing qui indique le nombre de menu.

    Mais je ne sais pas comment récupérer cette variable qui est dans un while PHP et l'intégré dans le JAva.

    Et je ne suis même pas sur que cela fonctionne

  4. #4
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Dans javaSCRIPT
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php $nbMenus=10; ?>
    <script type="texte/javascript">
    var nbMenus=<?php echo nbMenus; ?>;
    </script>

  5. #5
    Membre confirmé Avatar de Federico_muy_bien
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    154
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 154
    Par défaut
    Je suis débutant et je fais souvent des trucs compliqués pour pas grand chose mais bon je me lance ...

    Dans le PHP tu pourrais faire un
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<input type='hidden' value='".$nbre_menu."' id='nbre' />" ;

    Puis dans demo.js au moment du chargement de la page, tu prend
    nbre = document.GetElementByID('nbre') ;

    et avec ça une boucle où tu déclare le nombre de menus necessaires ...

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par Federico_muy_bien
    document.GetElementByID('nbre')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('nbre')

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Par défaut
    $jing était une variable dans le while, je les remplacer par la variable $datanb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $reqcomi2q = mysql_query("SELECT * FROM qr WHERE titre = '".$data['titre']."' && qr = 1"); 
    $datanb = mysql_num_rows($reqcomi2q);
    Au début du while de ma page php j'ai donc ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<input type='hidden' value='".$datanb."' id='nbre' />" ;
    Puis sur demo.js :

    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
     
    nbre = document.getElementById('nbre')
     
        if(nbre == 1)
    	{
    	var myVerticalSlide1 = new Fx.Slide('vertical_slide1').hide();
    	var myVerticalSlide2 = new Fx.Slide('vertical_slide2').hide();
    	}
     
        if(nbre == 2)
    	{
    	var myVerticalSlide1 = new Fx.Slide('vertical_slide1').hide();
    	var myVerticalSlide2 = new Fx.Slide('vertical_slide2').hide();
        var myVerticalSlide3 = new Fx.Slide('vertical_slide3').hide();
    	var myVerticalSlide4 = new Fx.Slide('vertical_slide4').hide();
    	}
    ...
    Mais ça Bug toujours (l'affichage n'est pas correcte) .

    J'ai donc fait plusieurs test, $datanb est une valeur correcte et fixe, j'ai tenté de déplacé ce code dans le while après la déclaration de la variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <script type="text/javascript" src="mootools.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    Mais toujours rien, je pense que dans la page demo.js, le if n'est pas exécuté.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Par défaut
    Personne n'a de solution?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Par défaut
    Remplace cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbre = document.getElementById('nbre')
    Par celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbre = document.getElementById('nbre').getAttribute('value');

    Ensuite, tu te compliques un peu la vie non ? A la place d'utiliser une variable pour chaque Slide, tu ne peux pas les mettre dans un array ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var myVerticalSlides = new Array();
    for(a=0 ; a<nbre ; a++) {
        myVerticalSlides[a] = new Fx.Slide('vertical_slide'+(a+1)).hide();
    }

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Par défaut
    Merci cela fonctionne
    Merci

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbre = document.getElementById('nbre').value;
    sera plus universel
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [XL-2003] Visibilité des variables déclarées "Public" entre plusieurs classeurs
    Par gerardmarquer dans le forum Excel
    Réponses: 0
    Dernier message: 17/06/2013, 20h03
  2. [RegEx] Récupérer la liste des variables déclarées
    Par neuro6 dans le forum Langage
    Réponses: 0
    Dernier message: 05/07/2010, 20h15
  3. [AC-2003] Perte des valeurs des variables déclarées en Public
    Par Darkzombie dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/03/2010, 09h58
  4. [MySQL] ne pas tenir compte des variables non utilisées pour éviter les bugs
    Par canary dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 26/03/2009, 08h46
  5. Réponses: 6
    Dernier message: 12/09/2007, 17h31

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