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 :

Variable globale qui ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut Variable globale qui ne fonctionne pas
    Bonjour à tous,

    j'ai un petit problème dans mon code javascript car les variables globales ne fonctionnent pas. Avant que je ne change le code, les variables fonctionnaient très bien mais depuis les modifs, elle ne fonctionnent plus!!!

    Voici le code:

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    var lasturl="";
    var lastsoft="";
    var bool=0;
    $(document).ready(function(){
         checkURL();
    });
     
    function checkURL()
    {
        console.log("checkurl : "+bool);
        var parametre=window.location.search.substring(1);
        var urlcurrent = window.location.href;
        console.log("lasturl : "+lasturl);
        console.log("urlcurrent : "+urlcurrent);
        if( urlcurrent != lasturl)
        {
            lasturl=urlcurrent;
            if(parametre==""){
                loadPageHome();
                $('#style_theme').remove();
            }
            else{
                loadPage(parametre);
                $('#logos').remove();
            }
        }
     
    }
    function loadPage(parametre){
        console.log("loadPage : "+bool);
        var tab = parametre.split("&");
     
        if(tab.length==1){
            var tab_2 = tab[0].split("=");
            if(tab_2[0]=="theme"){
                loadPageTheme(tab_2[1]);
            }else{
                loadPageSoftware(tab_2[1], "");
            }
        }
        else if(tab.length==2){
            var tab_soft = tab[0].split("=");
            var soft=tab_soft[1];
            var tab_onglet = tab[1].split("=");
            var onglet = tab_onglet[1];
            loadPageSoftware(soft, onglet);
        }
        else{
            var tab_soft = tab[0].split("=");
            var soft=tab_soft[1];
            var tab_onglet = tab[1].split("=");
            var onglet = tab_onglet[1];
            var tab_id = tab[1].split("=");
            var id = tab_id[1];
            //loadPageSoftware(soft,onglet);                                                                                                                                          
        }
    }
    function loadPageSoftware(name_soft, onglet){
        console.log("début loadPageSoft : "+bool);
        if(bool==1 && name_soft==lastsoft ){
            $("#menu_left").css("display","none");
            $("#link_menu").css("display","inline-block");
            $("#main").css("margin-left", "100px");
            $("#menu_left").css("position", "absolute");
        }
        else{
            if(name_soft!=lastsoft){
                lastsoft=name_soft;
                bool=0;
                $("#main").css("margin-left", "30px");
                $("#menu_left").css("position", "relative");
                $("#menu_left").css("display","inline-block");
                $("#link_menu").css("display","none");
            }
            bool+=1
        }
        var name_maj=name_soft.toUpperCase();
        if(onglet==""){
            var url_soft="/"+name_soft+"/"+name_soft+".php";
        }else{
            var url_soft="/"+name_soft+"/"+onglet+".php";
        }
        $("#main").load(url_soft);
    }
    Les variables bool, lasturl et lastsoft ne fonctionnent pas.

    Quelqu'un peut m'aider ?

    Merci

    Alaninho

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Ton souci est ailleurs...
    http://fiddle.jshell.net/16tgj9o8/

    Les variables globales fonctionnent !
    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 habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Elles s'affichent bien, je pense que je ne me suis pas bien exprimés en faite.

    Par exemple pour var bool, elle ne s'incrémente pas.

    J'aimerai la mettre soit à un soit à 0. Si on est sur la même page, elle est 1 et si on change elle est 0 par exemple.

    Le problème c'est qu'elle redevient à 0 tout le tps.

  4. #4
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Javascript ne survit pas à un changement de page !!!!

    Globale veut dire accessible depuis n'importe ou dans le script ... pas sur toutes les pages
    Ce ne sont pas des variables de session ... ça n'existe pas en js

    Soit tu passe par les varaibels de session sur le serveur pour conserver les données et les repasser à la page suivante,
    soit tu utilises les possibilités de sauvegardes de données client qui sont les cookies ou le localStorage .
    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 !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Même quand le javascript est chargé une seule fois ?

    Car, j'utilise Ajax, donc la page ne change pas, il y a juste une partie de la page qui change. Le javascript n'est donc pas recharger ?

    En attendant, je vais regarder du coté de tes solutions.

    Merci.

  6. #6
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Si tu ne recharge la page que partiellement avec ajax, alors javascript persiste, et, les variables sont conservées.
    Si tu n'as pas le bon résultat, c'est qu'elle sont modifiées par javascript
    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 !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Est ce que c'est normal que quand je clique sur un lien qui permet de charger juste une partie de la page, le $(document).ready() est relancer ?
    C'est peut être ça le problème non ?

  8. #8
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    tu n'as pas inhibé le href du lien ...
    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 !

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    C'est à dire ?

  10. #10
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    un lien = balise a => rechargement de page
    montre ton code html de la balise a et le code js associé ..
    il faut un return false ou preventDefault poru empecher que le href ne soit lancé
    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 !

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    J'ai mis la partie qui m'intéresse poru liens.

    Code html :

    Code html : 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
    <ul id="menu">
             <li class="onglet" id="home">
                <a href="?soft=test" class="mc">home</a>
             </li>
             <li class="onglet" id="web_server">
                <a href="?soft=test&onglet=form" class="mc">web server</a>
             </li>
             <li class="onglet" id="help">
                 <a href="?soft=test&onglet=help" class="mc">help</a>
             </li>
             <li class="onglet" id="examples">
                 <a href="?soft=test&onglet=examples" class="mc">examples</a>
             </li>
             <li class="onglet" id="id">
                 <a href="?soft=test&onglet=id" class="mc">ID</a>
             </li>
    </ul>

    code javascript, c'est le même que tout à l'heure.

    Merci de ton aide!!!

  12. #12
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    je ne vois nulle part la gestion des click sur tes onglets ??
    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 !

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    j'en ai pas, la fonction checkURL est appelée lors du $(document).ready(). C'est elle qui charge la page.

    C'est pas bon ?

  14. #14
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    ...
    et comment penses tu recharger partiellement des bouts de pages selon les clicks sur le liens ?
    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 !

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Avec le traitement qui est fait dans loadPageSoftware par Exemple.

    Je pense que ce n'est pas bon du coup.

    Comment je peux faire alors ?

    Peux-tu me donnez un exemple stp ?

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    J'ai bien compris ce que tu voulais dire pour le onclick, et en effet, c'est moi qui a mal codé.

    Le problème, c'est que quand j'utilise onclick(), je dois quand même changer l'url sans recharger la page.

    Mon problème, c'est que la navigation doit marcher sur des navigateurs qui n'utilisent pas HTML5, par exemple IE6.

    Est ce que tu as une idée de comment changer l'url sans recharger la page sur IE6 ?

    Car, pour les autres navigateurs il y a history.pushstate().

  17. #17
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    IE 6 ?
    Quelle drôle d'idée... Et surtout, qu'est-ce qui peut te faire croire qu'un navigateur obsolète te permettra de faire les mêmes choses qu'un navigateur moderne ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Ce n'est pas car j'en ai envie, mais car je suis obligé.

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Utilisation de storagelocal!!

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Avec IE6 ?
    Et quel rapport avec la gestion des URL et l'API history ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. [PHP 5.3] Variables dynamiques qui ne fonctionnent pas
    Par Gwennin dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2009, 18h12
  2. Réponses: 15
    Dernier message: 09/08/2009, 19h56
  3. Variable globale qui ne fonctionne pas
    Par the-morpher dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/03/2009, 22h01
  4. Variable session qui ne fonctionne pas
    Par sheira dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2009, 19h04
  5. Réponses: 15
    Dernier message: 12/08/2008, 12h30

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