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 :

[tableau dynamique]numéro de ligne


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Points : 41
    Points
    41
    Par défaut [tableau dynamique]numéro de ligne
    Bonjour,

    J'ai un tableau dynamique qui m'ajoute ou me supprime des lignes d'un tableau.
    Pour chaque ligne j'ai une liste déroulante d'individu qui lorsqu'elle est modifiée, elle déclenche une requete (javascript). L'objectif de la requete est de récupérer le mail de l'individu selectionné par la liste déroulante. Le problème c'est qu'une fois que j'ai récupérer le mail je n'arrive pas à le restituer dans le champ adéquate car les champs sont en réalité des tableaux "emailRegistrant[]":
    l'idée serait de récupérer le numero de la ligne par exemple mais je ne sais pas comment le récupérer.
    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
     
    <table width="425" class="dTable">
        <thead>
            <tr>
              <td height="23">&nbsp;</td>
              <td>&nbsp;</td>
              <td>&nbsp;</td>
          </tr>
            <tr>
                <td width="180" height="23"><div align="left">Registrant name </div></td>
                <td width="90"><div align="left">Email</div></td>
                <td width="139">&nbsp;</td>
            </tr>
        </thead>
        <tfoot>
        </tfoot>
        <tbody>        
            <tr>
                <td><select name="FQDNsRegistrant[]" id="FQDNsRegistrant[]" onChange="defineGroupName('Registrant');getValue(this,'person');">
            <option value="0">Registrant</option>
            <option value="1">mes individues générés en php </option>
     
          </select></td>
                <td><input name="emailRegistrant[]" type="text" id="emailRegistrant[]" size="15" maxlength="50" disabled></td>
                <td><p><a href="#" onclick="delLigne(this);" >Delete</a></p>
                <p><a href="#"  onclick="addLigne(this);" >Add a line</a></p></td>
            </tr>
        </tbody>
    </table>
    merci

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    sinon, tu peux donner à chacun de tes select et de tes input un id (unique, forcément) et l'identifier par là pour les manipulation JavaScript

  3. #3
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Points : 41
    Points
    41
    Par défaut
    pour ajouter une ligne je fais ca, t'as une idée comment y générer l'ID ?
    ca me parait pas évident
    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
     
    /* ajoute une ligne */
    function addLigne(link) {
        // 1. récuperer le node "TABLE" à manipuler
        var td = link.parentNode;
        var table = getParent(td,'TABLE');
     
        // 2. on va manipuler le TBODY
        var tbody = table.tBodies[0];
     
        // 3. on clone la ligne de reference
        var newTr = tbody.rows[0].cloneNode(true);
        tbody.appendChild(newTr);
     
        if ( document.all )  // pour IE
            newTr.style.display = "block";
        else
            newTr.style.display = "table-row"; // pour Gecko
    }

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    si tu as une id générique + numéro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var _id = "id_gen_" + tbody.rows.length;

  5. #5
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Points : 41
    Points
    41
    Par défaut
    il reste un probleme il me semble moi je copi une ligne je ne gere pas chaque champs de chaque ligne je ne suis pas en mesure de changer l'id d'un champ
    enfin je ne vois pas comment

  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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    getElementsByTagName('tr') peut t'être utile ...

  7. #7
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Points : 41
    Points
    41
    Par défaut
    en faite qd on regarde bien il y a une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    /* trouve le tag "parentTagName" parent de "element" */
    function getParent(element, parentTagName) {
        if ( ! element )
            return null;
        else if ( element.nodeType == 1 && element.tagName.toLowerCase() == parentTagName.toLowerCase() )
            return element;
        else
            return getParent(element.parentNode, parentTagName);
    }
    donc je peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var tr = getParent(td, 'TR');//ok
    alert(tr.getElementByName("champ4").value);//KO
    donc avec ca j'ai le "TR" adequate mais je ne peux pas faire de getElementByName ou getElementById.

  8. #8
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 82
    Points : 41
    Points
    41
    Par défaut
    savez vous comment a partir d'une variable représentant un TR ou bien un TD on peut recuperer un champ d'on on connais le nom ou l'ID ?

Discussions similaires

  1. tableau dynamique (ajout de lignes)
    Par nanourene dans le forum Struts 1
    Réponses: 3
    Dernier message: 29/04/2009, 11h18
  2. [MySQL] Tableau dynamique et couleur ligne
    Par Jumano dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/03/2007, 21h57
  3. [VBA-E]Ligne calculée en fin de tableau dynamique
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/10/2006, 23h23
  4. Affichage javascript total ligne tableau dynamique
    Par falz222 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/08/2006, 20h17
  5. [JTable] Un tableau dynamique (ajout de lignes)
    Par fraoustin dans le forum Composants
    Réponses: 3
    Dernier message: 09/10/2005, 01h27

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