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 :

innerhtml dans une variable


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut innerhtml dans une variable
    Bonsoir à tous,

    j'ai un petit problème en js.
    je veux passer par une variable pour afficher un résultat dans une cellule.
    je fais ça et marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var y = myCell1.innerHTML; 
     
    y=i; 
     
    autre question: pour faire ca 
     
    a="mycell"+"1"+".innerHTML"; 
    a=i;
    comment faire?

    merci à tous



  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par nou366 Voir le message
    Bonsoir à tous
    Salut a toi
    Citation Envoyé par nou366 Voir le message
    ça marche pas
    Aïe Nous v'là beaux. C'est-à-dire ? Messages d'erreur ? *Evénement* inattendu ? *Non-événement* alors qu'il était attendu ? Nous sommes dans l'expectative.
    Citation Envoyé par nou366 Voir le message
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var y = myCell1.innerHTML; 
     
    y=i;
    1) D'où provient ce morceau de code ? D'un script dans la balise head ? D'un gestionnaire d'événement dans une balise du body ? Dans un fichier externe ? Ailleurs ?

    2) Etant donné le choix de l'extrait, nous ignorons tout des références à i et myCell1, notamment leur valeurs possibles.

    Citation Envoyé par nou366 Voir le message
    autre question
    J'ai du rater la première... ?

    Citation Envoyé par nou366 Voir le message
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a="mycell"+"1"+".innerHTML"; 
    a=i;
    A vue de nez tu essaies d'accéder à une variable dynamiquement, en constituant son identifiant dans une chaine pour l'utiliser ensuite. En l'occurrence il te manque un passage par la fonction eval() pour que ça fonctionne. (Par contre, c'est considéré comme une pratique de code dangereuse.)

    Citation Envoyé par nou366 Voir le message
    comment faire?
    Fais-nous déjà un message un peu plus informatif et il y aura plein de gens pour t'aider ^^

    A plus

  3. #3
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut !

    Il y a des histoires de références qui égarent plus d'un novice…
    Quand tu fais :
    La variable y prend la valeur du innerHTML. Ce qui se passe, c'est que le innerHTML (de type String) est copié puis stocké dans y. Si tu changes le innerHTML après ça, y ne changera pas.

    Ensuite, tu fais :
    Alors, la variable y prend la valeur i. Et innerHTML ne change pas, car il n'est pas concerné…

    Par contre, si tu fais :
    Là pas de problème.

    Les choses ne se comportent pas de la même manière quand elles sont à gauche ou à droite du =.
    Comme je l'ai dit plus haut, myCell.innerHTML est de type String. Quand tu fais , tu stockes une chaîne dans y.

    Par contre, myCell est de type Object, et si tu fais tu stockes une référence vers myCell dans y.
    Ensuite, tu peux faire :
    Ça marchera car y est désormais une référence vers myCell.


    Je sais que tu risques de ne pas comprendre tout de suite ce que j'essaye de t'expliquer. Ce qu'il faut retenir, c'est qu'il peut se passer deux choses quand tu fais y = x.
    => si x est un type primitif (nombre, chaîne, boolean) : il est copié dans y ;
    => si x est un type complexe (objet, fonction, array) : sa référence est passée à y.

    En fait selon moi, il faut avoir fait du C pour comprendre ce bordel. Mais ce n'est que mon point de vue ^^

    Allez, des exemples !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> x = [] // type Array
    []
    >>> y = x // passage de référence
    []
    >>> y[0] = 2
    2
    >>> x
    [2] // x a été modifié
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> a = 12 // type Number
    12
    >>> b = a // copie de valeur
    12
    >>> b += 1
    13
    >>> a
    12 // a n'a pas été modifié
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut
    Merci d'essayer de m'aider.

    mon code js se trouve dans une balise head. Mycell dans mon code php.
    je récupere une valeur d'une <option> dans un <select>.
    et je désire créer un tableau avec un nombre de colonnes qui varient en fonction de l'option choisie.
    i = valeur choisie = nbr de colonnes

    Pour écrire dans une cellule, c'est bien mycell.innerhtml qu'il faut utiliser ou y 'a-t-il une autre façon ??

    Comment utiliser eval avec ce code:
    a="mycell"+"1"+".innerHTML";

    merci encore de m'aider

  5. #5
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    tu peux nous poster ton code javascript généré ? Et nous dire précisément ce que tu souhaites faire car avec 2 lignes et demie de lignes de code par-ci par-là on n'ira pas loin....

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 83
    Par défaut
    voici

    var c=form5.list.options[form5.list.selectedIndex].value;
    var b=c.split('-');

    myCell1.innerHTML="";
    myCell2.innerHTML="";
    myCell3.innerHTML="";etc il peut y en avoir des dizaines


    if( typeof(b[1])!='undefined') myCell1.innerHTML=b[1]
    if( typeof(b[2])!='undefined') myCell3.innerHTML=b[2]
    if( typeof(b[3])!='undefined') myCell2.innerHTML=b[3]

    ="";etc il peut y en avoir des dizaines

    je veux éviter de répéter mycell1...10
    je sais pas si c'est claire

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

Discussions similaires

  1. Stocker un noeud dans une variable
    Par Devotion dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 23/09/2004, 17h02
  2. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28
  3. Résultat d'une requête dans une variable...
    Par Hoegaarden dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2004, 13h51
  4. Réponses: 6
    Dernier message: 24/07/2003, 12h39
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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