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 :

Utiliser une variable locale dans une autre fonction


Sujet :

JavaScript

  1. #1
    Membre habitu�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut Utiliser une variable locale dans une autre fonction
    Bonjour,

    Comment utiliser une variable locale javascript dans une autre fonction

    Ex: fonction 1
    Que dois-je ajouter dans la fonction 1 pour que cette variable locale (jour) puisse �tre utilis�e dans une fonction 2.

    J'ai essay� de la transformer en variable globale mais, je n'y parviens pas.

    O� y a t'il d'autres solutions de passage d'une variable d'une fonction 1 � une fonction 2 ?

    Merci de vos r�ponses

    Philippe

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    transforme la en globale ... ce n' est pas parce que tu n'as pas r�ussi que ce n'est pas r�alisable ...

    ou passe la en param�tre ...
    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�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    C'est ce que j'essaie mais, comment faire ?

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var globale=50;
     
    function one() {
    globale= 100;
    two();
    }
     
    function two(){
     
    alert(globale)
    }
    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�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    Merci de votre r�ponse.

    J'utilise datepicker et mes deux derni�res fonctions ont pour objet de :
    . mettre la date au format fran�ais
    . envoyer la date et le jour � une autre page

    La date 'datexx" se trouve dans un input d�clar�e avec ID et NAME et la date apparait comme attendue au format dd-mm-yyyy.

    Je parviens � envoyer la date sans difficult� sur la page de r�ception mais pas le jour, ne parvenant pas � envoyer la variable correspondante � la derni�re fonction javascript.

    Sur tes conseils, j'ai d�clar� en t�te du script la variable globale Modifi� les deux fonctions vis�es comme suit :

    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
    $.datepicker.setDefaults($.datepicker.regional['fr']);
     
    $('#datexx').datepicker({
    	"onClose": function(dateText, inst){
    		var tabDate = dateText.split("-"),
    			year = tabDate[2],
    			month = parseInt(tabDate[1], 10) - 1,
    			day = parseInt(tabDate[0], 10),
    			date = new Date(year, month, day);
     
    		//console.log(date.getDay());
     
    		$("#jourxx").text($.datepicker.regional['fr'].dayNamesShort[date.getDay()]);
    		var jourxxx = document.getElementById('jourxx').innerHTML;
    		jourxxx = var jourxxx;
    		alert (jourxxx);
     
     
    }

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $('#datexx').datepicker({
          onSelect: function(dateText, inst) {
            $(this).change();
          }
        })
        .change(function(two) {
    	var datexx = document.getElementById('datexx').value;
    	alert (datexx);
    	alert (jourxxx);
    	      window.location.href = "http:www.xxx.php?datexx=" + datexx;
        });

    Le calendrier datepicker ne s'ouvre plus.

    En retirant le code progressivement, j'ai constat� que c'est "jourxxx = var jourxxx;" qui bloque l'ouverture du calendrier.

    Que faire ?

    J'avais envisag� de traiter l'aspect jour dans la page r�ceptive, mais le traitement de la date envoy�e au format (dd-mm-yyyy) se traduit par un chiffre comme 1989, 1990, etc ... en fonction des dates? via le script suivant

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $datexx1 = htmlspecialchars($_GET['datexx']);
    echo    '<br/>Datexx : ';
    echo    $datexx1;
    ?>
     
    <script type="text/javascript">
    var ladate= <?php   echo    $datexx1 ?>;
    alert (ladate);
    var tab_jour=new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
    document.write("Nous sommes un "+tab_jour[ladate.getDay()])
    </script>

    Une id�e ?

    A+

    Philippe

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut




    c'est quoi ce var l� ?
    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�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    Il est d�fini � la ligne pr�c�dente :
    var jourxxx = valeur de l'�l�ment 'jourxx' (en l'occurrence un jour de la semaine)

    L'alert de la ligne suivante renvoie bien le jour de la semaine correspondant au jour s�lectionn� via le calendrier de datepicker

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    Non, mais mettre var devant signifie d�clarer la variable ... donc en gros la vider ...

    de plus utiliser le m�me nom de variable au niveau local


    � la limite
    mais autant utiliser la variable globale direct
    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�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    J'ai fait le changement mais, cela bloque toujours en amont l'ouverture du calendrier datepicker

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    Montre nous le html sourc� g�n�r� ...
    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�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    Je vais laisser tomber et, extraire le jour de la semaine sur la page de destination, ce qui est manifestement plus simple avec mktime, etc ...

    Merci encore de ton aide

    Bonne journ�e

    Philipe

  12. #12
    R�dacteur

    Avatar de danielhagnoul
    Homme Profil pro
    �tudiant perp�tuel
    Inscrit en
    F�vrier 2009
    Messages
    6 389
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant perp�tuel
    Secteur : Enseignement

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par d�faut
    Il y a trop de choses � dire sur votre code. Je pr�f�re vous donner un exemple qui fonctionne :

    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
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="initial-scale=1.0">
      <meta name="author" content="Daniel Hagnoul">
      <title>Test</title>
      <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/sunny/jquery-ui.css">
      <style>
     
      </style>
      <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
      <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    	<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/i18n/jquery-ui-i18n.min.js"></script>
      <script>
        "use strict";
     
        var
          nomDesJours = [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ],
          nomDuJour = "inconnu"; // seconde méthode, avec une variable globale
     
        // Première méthode, dans un input
        function jourSemaine() {
          let jourxxx = $( '#jourxx' ).val();
     
          alert( jourxxx );
        }
     
        $( function(){ // forme abrégée de $(document).ready( function( ){
     
          // setDefaults dépend de jquery-ui-i18n.min.js
          $.datepicker.setDefaults( $.datepicker.regional[ "fr" ] );
     
          $('#datexx').datepicker({
            "onClose": function( dateText, inst ){
              var
                tabDate = dateText.split( "/" ),
                year = tabDate[2],
                month = parseInt( tabDate[1], 10 ) - 1,
                day = parseInt( tabDate[0], 10 ),
                date = new Date( year, month, day ),
                dayName = nomDesJours[ date.getDay() ];
     
              $( "#jourxx" ).val( dayName ); // remplir l'input
     
              nomDuJour = dayName; // remplir la var globale
     
              jourSemaine(); // test l'input
     
              // test la var globale
              setTimeout( function(){
     
                // console, touche F12
                console.log( "Nous sommes " + nomDuJour + " !" );
     
              }, 3000 );  // 3s
            }
          });
     
        });
      </script>
    </head>
    <body>
     
      <input id="datexx" type="text" value="">
      <input id="jourxx" type="text" value="">
     
    </body>
    </html>
    Il y a un forum jQuery.

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues � un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  13. #13
    Membre habitu�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    Merci de ta r�ponse.

    Avec les 2 champs (date et jour) INPUT, il n'y a effectivement aucune difficult�.

    Par contre, uniquement avec le champ "date" en INPUT, je n'ai pas de solution pour l'envoi de la variable "jour" sur une autre page.

    Aussi, j'ai extrait le "jour" sur la page de destination par traitement javascript de la date.

    Merci encore pour ton aide et bonne journ�e

    Cordialement

    Philippe

  14. #14
    Membre tr�s actif Avatar de zaza576
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Ao�t 2013
    Messages
    175
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - Produits et services t�l�com et Internet

    Informations forums :
    Inscription : Ao�t 2013
    Messages : 175
    Par d�faut
    Hello,

    pour exporter une variable de classe � utiliser dans d'autres scripts, on peut utiliser entre autres :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var myapp = myapp || {};
    myapp.utils = (function () {
        var exports = {};
        exports.CONSTANT_A = "FOO",
        exports.CONSTANT_B = "BAR";
        exports.func = function func() {}
        function _privateFunc() {}
        return exports;
    }());
    Cela encapsule dans myapp.utils les "variables globales" CONSTANT_A et CONSTANT_B de ton application et �vite certaines d�rives de Javascript sur l'OOP.
    On retrouve une forme similaire dans le framework AngularJS.

    Cdt

  15. #15
    Membre habitu�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    D�cembre 2015
    Messages
    10
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 10
    Par d�faut
    Ok, je te remercie pour les infos.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 10
    Dernier message: 15/06/2011, 11h30
  2. R�ponses: 9
    Dernier message: 23/06/2009, 10h54
  3. R�ponses: 1
    Dernier message: 20/04/2007, 09h12
  4. R�ponses: 2
    Dernier message: 08/04/2007, 22h24
  5. r�cup�rer une variable javascript dans une variable java
    Par tx dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 06/07/2006, 17h55

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