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 :

Récupérer dans un Id de 3 colonnes et x lignes les valeurs dans une variable


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut Récupérer dans un Id de 3 colonnes et x lignes les valeurs dans une variable
    Bonsoir à tous,

    J'ai tableau de x lignes avec 3 colonnes (fixes), est il possible de récupérer ces données dans une variable ?
    imaginons que dans le tableau contenu dans l'Id bidule de ma page html j'ai x lignes d'affichées avec :

    bla1 bla2 bla3
    bla4 bla5 bla6
    bla7 bla8 bla9

    En vba ça ne me poserais pas de soucis mais je débute en javascript.

    Vba : - je recherche le nombre de lignes
    je fais une boucle For et je constitue ma variable à chaque passe de la boucle en mettant à la ligne.
    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for i = 1 to derlg
    message= colonne1(i).value  & " " &  colonne2(i).value  & " " &  colonne3(i).value
    mess = mess & " " & message & chr(10) 
    next i

    merci par avance pour vos aides pour récupérer une variable du même contenu

    Variable =
    bla1 bla2 bla3
    bla4 bla5 bla6
    bla7 bla8 bla9

    Amicalement

    Scoub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Citation Envoyé par scoubi77 Voir le message
    ...mais je débute en java...
    Ici, c'est le forum JavaScript...
    Pas Java.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Oui pardon je voulais dire en javascript

    C'est vrai que Vba on dit Vb en contractant mais je n'avais pas percuté que le Java existe aussi !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    je test

    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
     
     
                    fonction recup()
                                           {
                    var tableau = document.getElementById("tableau");
                    var longueurTab = document.getElementById("nbreLignes").innerHTML;
                    if (longueurTab > 0)
                    {
                        for(var i = longueurTab ; i > 0  ; i--)
                        {
                            message=((tableau.rows[i].cells[0].innerHTML),(tableau.rows[i].cells[1].innerHTML),(tableau.rows[i].cells[2].innerHTML));
     
     
     
                      }
                     }
                    }
    je patauge ça plante quand j'arrive à la variable message

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    En JavaScript (ou JS ), la concaténation se fait avec le signe +.

  6. #6
    Invité
    Invité(e)
    Par défaut
    bj,

    tu peux utiliser innerText, textContent ou parser (comme tu l'as fait) toi même les noeuds de ta table et concaténer le contenu
    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
    18
    19
    20
    21
    22
    23
    24
    <!doctype html>
    <table id="tableau">
        <tr>
            <td>a</td>
            <td>b</td>
            <td>c</td>
            <td>d</td>
        </tr>
        <tr>
            <td>e<hello>kitten</hello></td>
            <td>f</td>
            <td>g</td>
            <td>h</td>
        </tr>
    </table>
    <script>
        console.log(document.getElementById('tableau').innerText);
        console.log(document.getElementById('tableau').textContent);
     
        var rows = [...document.getElementById('tableau').rows].map(tr=>{
            return [...tr.cells].map(td=>td.innerText)
        })
        console.log(rows)
    </script>
    affiche dans la console
    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
     
    a	b	c	d
    ekitten	f	g	h index.html:17:5
     
     
            a
            b
            c
            d
     
     
            ekitten
            f
            g
            h
     
    index.html:18:5
    (2) []0: Array(4) [ "a", "b", "c", … ]1: Array(4) [ "ekitten", "f", "g", … ]length: 2
    ce que tu constates c'est qu'on observe les espaces blancs lors des deux premieres méthodes, qui correspondent à l'indentation : D

    dans la dernière tu as récupéré ton contenu sous forme structurée, convertir en str tel que ton vba est un détail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rows.map(r=>r.join(' ')).join('\n')
    Dernière modification par ProgElecT ; 05/10/2018 à 08h35. Motif: S'il vous plait, autant que possible, indiquer le langage utilisé, [CODE=xyz], pour activer la bonne coloration syntaxique.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    merci beaucoup,

    Il est vrai que j'étais parti sur une reflexion comme je l'aurais écrit en vb lol

    j'obtiens bien dans la var Rows les valeurs :

    0: (4) ["a", "b", "c", "d"]
    1: (4) ["ekitten", "f", "g", "h"]
    length: 2
    __proto__: Array(0)


    J'ai donc modifié pour récupérer dans un id avec ceci

    Code Javascript : 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
     
    <script>
        function test() 
        {
        debugger;
        console.log(document.getElementById('tableau').innerText);
        console.log(document.getElementById('tableau').textContent);
     
        var rows = [...document.getElementById('tableau').rows].map(tr=>{
            return [...tr.cells].map(td=>td.innerText)
        })
        console.log(rows)
    rows.map(r=>r.join(' ')).join('\n')
    var m = rows
    document.getElementById('MaDiv').innerHTML= m; 
     
    }
    </script>
     
    et dans le html
     
    <div id="MaDiv"></div>

    et si je place dans un Id il devient :

    "a", "b", "c", "d", "ekitten", "f", "g", "h"

    l'affichage se fait sur une seule ligne
    comment peut on l'obtenir lignes par lignes et sans les virgules ?
    D'autre part en fait le tableau comporte 5 colonnes mais seule les trois premières m’intéresses, comment ne prendre que les trois premières ?

    Merci déjà pour cette réponse qui va grandement dans le sens que je souhaite faire

  8. #8
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 108
    Points : 16 640
    Points
    16 640
    Par défaut
    Salut

    comment peut on l'obtenir lignes par lignes et sans les virgules ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rows.map(r=>r.join(' ')).join('<br>')
    Édit: peut être aussi de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var m = String(rows).replace(/,/g,'<br>');
    document.getElementById('MaDiv').innerHTML= m;

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Merci je test demain et je te dis, je suis quand même assez dérouté par la différence d’ecriture Et de conceptualisation entre le vb et le JavaScript

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup ça marche parfaitement.
    Il y a en faite dans le tableau 5 colonnes,
    Comment peut on exclure la dernière qui ne m’interesse Pas en récupérant que les 4 premières ?

    La dernière colonne a toujours le même mot : supprimer
    Je part sur la piste d’un replace le mot par vide comme en Vb, ça doit exister en js

  11. #11
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 108
    Points : 16 640
    Points
    16 640
    Par défaut
    Salut

    A la place de var m = String(rows).replace(/,/g,'<br>'); du peux faire,
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	var Tbl = String(rows).split(',');
    	document.getElementById('MaDiv').innerHTML= Tbl[1] + '<br>' + Tbl[2] + '<br>' + Tbl[3] + '<br>' + Tbl[4] + '<br>';

  12. #12
    Invité
    Invité(e)
    Par défaut
    hello,

    je vois pas trop l'intérêt de convertir rows en String pour ensuite splitter rows (idem de destructurer rows pour ensuite y restructurer)
    ici,
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    rows.map(r=>r.slice(0,4).join(' ')).join('<br/>')
    fait laffaire mais on peut aussi noter que on peut conserver le string tq idem:
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    rows.map(r=>r.slice(0,4).join(' ')).join('\n')
    et rajouter la propriété css sur le div

    d'une manière plus générale je vois pas trop non plus un cas d'usage pour avoir un tableau, récupérer son contenu, et le convertir en string pour l'afficher dans un div

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Points : 78
    Points
    78
    Par défaut
    Bonsoir à tous,

    Le but est de récupérer le contenu d'un panier et de le mettre dans le
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" id="inf1" name="item_name" value=" ">
    d'un bouton Paypal.

    Quand j'affiche dans un div j'obtiens bien
    a b c
    d e f
    mais si je l'affiche dans un alert() j'obtiens bien :
    a b c
    d e f
    et dans le name="item_name" value=" " quand il ouvre la partie de Paypal j'ai :
    a b c d e f
    auriez-vous une solution ?

Discussions similaires

  1. Récupérer les valeurs d'une variable sur une feuille excel
    Par SpaceX dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/03/2018, 17h45
  2. Comparer ligne par ligne les valeurs dans la colonne de table
    Par Hobinantenaina1 dans le forum WinDev
    Réponses: 13
    Dernier message: 25/04/2017, 15h22
  3. [2008R2] Ajout de colonne et insertion avec les valeur d'une autre colonne (ligne+1)
    Par diidouu dans le forum Développement
    Réponses: 3
    Dernier message: 30/04/2013, 15h15
  4. Réponses: 1
    Dernier message: 05/12/2011, 10h36
  5. Réponses: 2
    Dernier message: 12/08/2011, 14h13

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