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 :

modifier une valeur de variable


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut modifier une valeur de variable
    Bonjour à tous,

    Je souhaiterai savoir s'il est possible de faire varier la valeur d'une variable dans un script js qui se trouve dans le body.

    explication : j'utilise des fonctions bbcodes de phpbb le forum et pour configurer le bbcode il intègre ceci dans le corp de la page =>

    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
     
    <script type="text/javascript"> 
    // <![CDATA[
    var form_name = 'postform';
    var text_name = 'titre';
    var load_draft = false;
    var upload = false;
     
    // Define the bbCode tags
    var bbcode = new Array();
    var bbtags = new Array(//ici les bbcodes supprimé pour pas faire d'interférence avec ceux du forum//);
     
    var imageTag = false;
     
    // Helpline messages
    var help_line = {
    b: 'Texte gras: (b)texte(/b)',
    i: 'Texte italique: (i)texte(/i)',
    u: 'Texte souligné: (u)texte(/u)',
    q: 'Citation: (quote)texte(/quote)',
    etc.......
    								}
    var panels = new Array('options-panel', 'attach-panel', 'poll-panel');
    var show_panel = 'options-panel';
    // ]]>
    </script>
    Ce script à pour particularité de définir notament l'endroit ou le bbcode va s'afficher. Autrement dit la zone de texte de destination.

    Le soucis que j'ai c'est que sur la même page j'ai deux zones de texte et deux outils bbcodes.

    la variable qui permet de définir la destination c'est : var text_name = 'titre';

    En fonction de la valeur cela change la destination du bbcodes problème vu que c'est dans le corp de la page les variables s'initialisent au chargement donc même avec une fonction au onclick je ne parvient pas a changer cette valeur. Voili voilou pour mon soucis; j'espère avoir été assé clair et merci pour vos réponses

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par xess91 Voir le message
    vu que c'est dans le corp de la page les variables s'initialisent au chargement donc même avec une fonction au onclick je ne parvient pas a changer cette valeur.
    ce n'est pas uniquement un problème d' "initialisation" de la variable, car tu peux toujours en changer la valeur ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" value="Change form_name" onclick="form_name='toto'; alert('form_name='+form_name);">
    Ce qui se passe sûrement c'est que form_name est utilisé (dans une fonction) lors du chargement.
    Pour changer ça, il faut que tu trouves ces fonctions lancées au chargement et utilisant form_name.
    Après avoir affecté à form_name ta valeur à toi, il doit falloir relancer ces fonctions pour remplacer le fonctionnement initial ...
    Je sais pas si j'ai été clair

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    C'est exactement ça !

    Mais j'ai pas tout compris pour la résolution du problème, trouver les fonction qui se lance au chargement je veux bien mais après :
    Après avoir affecté à form_name ta valeur à toi, il doit falloir relancer ces fonctions pour remplacer le fonctionnement initial ...
    Je sais pas si j'ai été clair
    Je ne vois pas trop ce que signifie ma valeur à moi .....

    par exemple j'ai la fonction initInsertions():
    Qui a besion de la valeur initialisé au chargement.
    je me suis trompé tout à l'heure c'est pas "form_name" qui m'interresse mais "text_name".

    Que dois-je changer ?

    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
     
    function initInsertions() 
    {
    	var doc;
     
    	if (document.forms[form_name])
    	{
    		doc = document;
    	}
    	else 
    	{
    		doc = opener.document;
    	}
     
    	var textarea = doc.forms[form_name].elements[text_name];
     
    	if (is_ie && typeof(baseHeight) != 'number')
    	{
    		textarea.focus();
    		baseHeight = doc.selection.createRange().duplicate().boundingHeight;
     
    		if (!document.forms[form_name])
    		{
    			document.body.focus();
    		}
    	}
    }

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par xess91 Voir le message
    Je ne vois pas trop ce que signifie ma valeur à moi .....
    Citation Envoyé par xess91 Voir le message
    donc même avec une fonction au onclick je ne parvient pas a changer cette valeur. Voili voilou pour mon soucis;
    Si tu souhaites modifier cette valeur, c'est pour en mettre une autre : c'est celle que j'appelle "ta valeur à toi"

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par xess91 Voir le message
    Que dois-je changer ?
    Rien, justement.
    Juste la relancer puisqu'elle utilise la variable dont tu auras changé la valeur

    EDIT : ceci dit, je te donne des réponses purement technique, car fonctionnellement, je ne vois pas comment ta page fonctionne

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  6. #6
    Membre habitué Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Points : 193
    Points
    193
    Par défaut
    je vais avoir l'air bête mais comment je la relance?

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par xess91 Voir le message
    je vais avoir l'air bête mais comment je la relance?
    Cf. mon EDIT précédent

    Ca dépend : tu veux remplacer le fonctionnement actuel ?
    Dans ce cas, il suffit de modifier la valeur dans le code de la page, non ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Citation Envoyé par xess91 Voir le message

    Que dois-je changer ?
    Si j'a bien compris, tu a deux textarea sur lesquelles tu dois faire un traitement. Ton probleme, c'est que la sélection de la textare se fait en dehors de la fonction de traitement (initInsertions ).

    je ne sais pas où l'appel à initInsertions à lieu, mais il faut soit faire 2 appels en changeant la valeur de text_name entre les deux appels, soit modifier initInsertions pour qu'elle prenne text_name en parametre :

    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
    initInsertions() ;
    text_name = "autre";
    initInsertions() ;
    
    // ou bien 
    function initInsertions(useName) 
    {
    	var doc;
     
    	if (document.forms[form_name])
    	{
    		doc = document;
    	}
    	else 
    	{
    		doc = opener.document;
    	}
     
    	var textarea = doc.forms[form_name].elements[useName];
     
    	if (is_ie && typeof(baseHeight) != 'number')
    	{
    		textarea.focus();
    		baseHeight = doc.selection.createRange().duplicate().boundingHeight;
     
    		if (!document.forms[form_name])
    		{
    			document.body.focus();
    		}
    	}
    }
    //et dans ton code 
    initInsertions("premier") ;
    initInsertions("autre") ;
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

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

Discussions similaires

  1. Lire et modifier une valeur de variable
    Par Marmotton76 dans le forum Langage
    Réponses: 1
    Dernier message: 11/02/2009, 15h32
  2. modifier une valeur dans des variables
    Par bombjack91 dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/06/2007, 08h14
  3. Réponses: 4
    Dernier message: 29/03/2006, 08h22
  4. modifier une valeur dans une hash
    Par chaabane dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2006, 10h59
  5. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45

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