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 :

port�e d'une variable dans une fonction dans une m�thode


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par d�faut port�e d'une variable dans une fonction dans une m�thode
    Bonjour,
    Mon probl�me est un probl�me de port�e d'une variable.
    mon 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
    // classe qui manipule l'objet bbcode  insertion d'image ,de liens dans le contenu et autre
    // le constructeur de l'objet de type classObjectBBcode
    function classObjectBBcode(imageTag,lienTag,idImage){
     
     
    this.imageTag=imageTag;
    this.lienTag = lienTag;
    this.idImage=idImage ;
     
     
     
    }
     
    //méthode qui affiche un formulaire d'upload et qui créé un tag qui sera 
    //inséré via une autre méthode dans le contenu d'un textarea
    classObjectBBcode.prototype.showUpload=function(){
     
     
    var im1 = document.images[0]; 
    im1.onclick=function() { 
    var div = document.getElementById("showUpload");
    div.style.display = 'block';
    var contenu = document.forms[4].elements[3].value;
    var reg = new RegExp("\[img [0-9]+\]","g");
    var tags=contenu.match(reg);
     
     
    var tagImage = "[img "+this.idImage+"]";
    Le soucis vient de l'attibut this.idImage
    si un alert l'affiche dans la m�thode showUpload
    il reste undefined dans ma fonction anonyme.
    une histoire de port�e visiblement.m�me si j'ai r�solu le probl�me
    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
    function classObjectBBcode(imageTag,lienTag,idImageF){
     
     
    this.imageTag=imageTag;
    this.lienTag = lienTag;
    idImage=idImageF ;
     
     
     
    }
     
     
    classObjectBBcode.prototype.showUpload=function(){
     
     
    var im1 = document.images[0]; 
    im1.onclick=function() { 
    var div = document.getElementById("showUpload");
    div.style.display = 'block';
    var contenu = document.forms[4].elements[3].value;
    var reg = new RegExp("\[img [0-9]+\]","g");
    var tags=contenu.match(reg);
     
     
    var tagImage = "[img "+idImage+"]";//résultat à retourner passer en param à l'appelle de smiley
    idImage devient une variable globale mais ce n'est plus un attribut d'objet
    exist il un moyen de r�cuperer cet atribut sous la forme this.idImage dans ma fonction contenue dans la m�thode et qui s'�x�cute apr�s un click sur une image ? faire qyue le 1er code fonctionne ?
    Voici le code appelant
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    var objBBcode = new classObjectBBcode(null,null,"<?php echo $idimage; ?>");	
        objBBcode.showUpload();
    autre question
    Si dans ma m�thode showUpload
    j'ecris un comment r�cup�rer tagImage ?
    avec un code apellant type
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    var objBBcode = new classObjectBBcode(null,null,"<?php echo $idimage; ?>");	
        var varreturn=objBBcode.showUpload(); 
    var divTest = document.getElementById("test");
        divTest.innerHTML=varreturn;
    	</script>
     
     
    <div id='test'></div>
    ne renvoit rien
    merci de m'aider

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Pour ta premi�re question, dans ta fonction anonyme, le this ne correspond plus au m�me objet.
    Une solution est de passer par une variable interm�diaire (souvent appel�e that) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    classObjectBBcode.prototype.showUpload=function(){
     
    var that = this;
    var im1 = document.images[0]; 
    im1.onclick=function() { 
    var div = document.getElementById("showUpload");
    div.style.display = 'block';
    var contenu = document.forms[4].elements[3].value;
    var reg = new RegExp("\[img [0-9]+\]","g");
    var tags=contenu.match(reg);
     
     
    var tagImage = "[img "+that.idImage+"]";
    Pour la seconde question, tout d�pend de o� tu mets le return. Si c'est dans la fonction anonyme, alors c'est elle qui va renvoyer le r�sultat � sa fonction appelante qui elle ne renverra rien du tout
    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

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par d�faut
    Bonjour
    Alors l� je dis bravo
    C'est tr�s bon merci beaucoup
    en fait ,javascript simule la notion d'orient� objet en tout cas tel qu'elle existe en java ou C#
    Mais je ne veux rien qui rappelle le proc�dural

    Merci bien

    autre question
    dans une methode j'ai ma fonction anomyme
    classObjectBBcode.prototype.showUpload=function(){im1.onclick=function() {return tagImage}}
    et je voudrais r�cup�rer tagImage
    comme ceci
    var objBBcode = new classObjectBBcode(null,null,"<?php echo $idimage; ?>");
    var varreturn=objBBcode.showUpload();
    varrereturn contient tagImage
    Or comme remarqu� justement j'appelle la m�thode pas la fonction anonyme
    qui ne s'appelle pas
    puis je en faire une fonction nominative et l'appell�
    la solution semble d'en faire un attibut de la classe et donc de l'instance de l'objet peut etre
    le but avec la variable ainsi r�cup�r�e via l'appel de la fonction est d'appeller une autre m�thode qui elle va v�ritablement ins�rer ce tag dans un textarea.

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par d�faut
    J'ai trouv� la solution un passage de type reference

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    327
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 327
    Par d�faut
    Re moi
    les variables globales c 'est bien jolie
    mais comment appeller une methode d'instance ou une methode statique
    en lui passant des parametres sans cr�er un attribut
    mon parametre est une variable
    Je peux cr�er une fonction classique
    function ma_finction(){} ret l'appeller dans une m�thode
    mais je ne veux pas je voudrais appeller une methode en lui passant des parametres

    Merci

Discussions similaires

  1. [PHP 5.4] r�cup�rer la valeur d'une variable qui se trouve dans un fonction
    Par aspkiddy dans le forum Langage
    R�ponses: 2
    Dernier message: 11/02/2014, 17h06
  2. R�ponses: 2
    Dernier message: 24/09/2010, 20h28
  3. R�ponses: 9
    Dernier message: 05/11/2008, 09h37
  4. R�ponses: 7
    Dernier message: 13/03/2006, 15h39
  5. R�ponses: 4
    Dernier message: 05/10/2005, 18h19

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