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 le nom du champ selectionné


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    consultant en entreprise
    Inscrit en
    Janvier 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : consultant en entreprise
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2017
    Messages : 18
    Par défaut Récupérer le nom du champ selectionné
    Bonjour

    j'ai un formulaire avec les champs d'une table dessus et je voudrais pouvoir faire détecter le nom du champ dans lequel je me trouve quand je clique sur une cellule d'un enregistrement

    Merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 672
    Par défaut
    c'est faisable si vous utilisez par exemple jQuery

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    même sans jQuery mais au préalable il faudrait savoir ce que tu entends par « le nom du champ dans lequel je me trouve quand je clique sur une cellule d'un enregistrement » !

  4. #4
    Membre averti
    Homme Profil pro
    consultant en entreprise
    Inscrit en
    Janvier 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : consultant en entreprise
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2017
    Messages : 18
    Par défaut "nom du champ"
    Bonjour et merci à vous

    ce que j'appelle le nom du champs c'est le nom de l'entete de colonne du champs de la table... Ma table à champ 1 - champs 2- champs 3 - champs 4 et le tout en page sur formulaire en mode continu.
    Je voudrais donc qu'en cliquant sur la cellule d'un enregistrement, il détecte dans quelle colonne je suis et qu'il me garde dans une variable le nom de la colonne soit champ 1 ou champ 2 ....
    merci

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Je ne sais pas si j'ai bien compris mais je te propose de gérer le click via délégation sur la <table>.

    Dans le principe on met l'écouteur sur le <table> et si l'on clique sur une <td> la fonction traite l'événement.
    Pour la récupération de la colonne il suffit de lire la propriété cellIndex de la <td> et pour la ligne la propriété rowIndex de la <tr> parent.

    Concrètement regarde l'exemple et clique sur les cellules de la <table>.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    <!DOCTYPE HTML>
    <html lang="fr">
    <head>
    <meta charset="UTF-8">
    <title>Récup. ligne et colonne au clic</title>
    <meta name="Author" content="NoSmoking">
    <style>
    html, body {
      font:1em/1.5em Verdana, Arial, sans-serif;
    }
    h1, h2, h3 {
      color: #069;
    }
    #main {
      margin: 0 auto;
      max-width: 60em;
    }
    table {
      empty-cells:show;
      border-collapse:separate;
      border-spacing:1px;
      border:1px solid #888;
    }
    thead {
      background: #EEE;
    }
    thead tr {
      background: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.2));
      text-shadow: 1px 1px white;
      border-radius: 2em;
    }
    td {
      font:0.9em/1.2em Verdana;
      min-width:10em;
      height:2em;
      min-height:2em;  
      cursor: pointer;
    }
    td,th {
      padding: 0.25em;
      border: 1px solid #888;
    }
    </style>
    </head>
    <body>
    <div id="main">
      <h1>Récup. ligne et colonne au clic</h1>
      <table>
        <thead>
          <tr>
            <th>Nom</th>
            <th>Prénom</th>
            <th>Tél.</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Dupont</td>
            <td>Jean</td>
            <td>+(33)102030405</td>
          </tr>
          <tr>
            <td>Martin</td>
            <td>Pierre</td>
            <td>+(33)405060708</td>      
          </tr>  
          <tr>
            <td>Quiroule</td>
            <td>Pierre</td>
            <td>+(33)908070605</td>            
          </tr>
        </tbody>  
      </table>
      <p><b>Nota</b> : le numéro des lignes et des colonnes commence à 0.</p>
      <p>Clic sur :</p>
      <div id="console"></div>
    </div>
    <script>
    // récup. des éléments
    var oTable = document.querySelector('table');
    var oDebug = document.querySelector('#console');
    // initialisation des champs d'entête
    var oTHs = oTable.querySelectorAll('TH');
    var i, nb = oTHs.length;
    var champs = [];
    for (i = 0; i < nb; i += 1) {
      champs.push(oTHs[i].textContent);
    }
    // définition fonction au click
    function handleClick(e) {
      var oClick = e.target;
      if ('TD' === oClick.tagName) {
        var oParent = oClick.parentNode;
        oDebug.innerHTML = '<ul><li>ligne : <b>'
            + oParent.rowIndex
            + '</b><li>colonne : <b>'
            + oClick.cellIndex
            + '</b><li>champ : <b>'
            + champs[oClick.cellIndex]
            + '</b></ul>';
      }
      else {
        oDebug.innerHTML = '';
      }
    }
    // affectation fonction
    oTable.onclick = handleClick;
    </script>
    </body>
    </html>

Discussions similaires

  1. récupérer les noms des champs d'une table access
    Par fabrice33 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 06/04/2007, 19h38
  2. [MySQL] Récupérer les noms des champs
    Par Ricou13 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/09/2006, 11h36
  3. [ODBC] Comment récupérer le nom des champs de table Access
    Par Alexlesilex dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/05/2006, 14h14
  4. Requête pour récupérer le nom des champs
    Par legillou dans le forum JDBC
    Réponses: 1
    Dernier message: 08/02/2006, 16h09
  5. récupérer le nom des champs d'une table d'une BDD-page web
    Par mathieu_r dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 09/06/2005, 14h02

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