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 :

recuperer la ligne cliquée sous Firefox


Sujet :

JavaScript

  1. #1
    Membre actif

    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 248
    Points
    248
    Par défaut recuperer la ligne cliquée sous Firefox
    Bonjour a tous !
    voila mon problème...
    soit la fonction ci-dessous :
    [i]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function GetRows()
    {
    source=ns6? source.parentNode : source.parentElement
     
    var rows = document.getElementById('TABLE1').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
            for (i = 0; i < rows.length; i++) {
                rows.onclick =  function(){
                 alert (this.rowIndex + 1)// valeur a remonter
                }
                }
    //return ???// ici je ne sais plus quoi faire !:cry: 
    }
    cette fonction est chargée de m'afficher le N° de la ligne cliquée d'un table ( ici 'TABLE1'). jusque la cela marche sans problème.

    QUESTION : comment faire pour renvoyer la valeur de this.rowIndex+1 au niveau de la fonction GetRows()?

    merci d'avance pour vos réponses eclairées !
    bon dev's !!!

  2. #2
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    Salut Guy

    Je suis surpris par ton programme (déjà, j'apprends le rowIndex).
    Ensuite, pour moi, ta fonction (que j'aimerai tester) fait que lorsque tu cliques sur une case du tableau, une fonction va s'exécuter.

    Je mettrais un alert avant ton return pour voir si ta fonction s'exécute bien quand tu le souhaites.

    Pour palier à ce problème, je ferais exécuter une routine à ton programme qui elle fera ce que tu souhaites en passant le paramètre this.rowIndex
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  3. #3
    Membre actif

    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 248
    Points
    248
    Par défaut
    bof, y'a pas a etre surpris...
    tiens voici le source complet...

    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
    36
    37
    38
    39
    40
    html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Detecting table row index with JavaScript</title>
    <style type="text/css">
    body { width: 500px; text-align: center; font: bold 10px/16px Verdana, sans-serif; color: #555; margin: 20px auto; }
    h1, p { text-align: left; font-weight: normal; }
    h1 { font: bold 14px "Trebuchet MS", sans-serif; color: #600; }
    table { width: 500px; margin: 0 auto; font-size: 10px; border: 1px solid #ccc; border-width: 1px 0 0 1px; border-collapse: collapse; }
    caption { margin: 0 auto; font-size: 12px; margin-bottom: 2em; }
    td { padding: 10px; border: 1px solid #ccc; border-width: 0 1px 1px 0; }
    tr:hover td { background: #CAEFFD; color: #0768B3; cursor: pointer; }
    </style>
     
    <script type="text/javascript">
    onload = function() {
        if (!document.getElementsByTagName || !document.createTextNode) return;
        var rows = document.getElementById('table1').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
        for (i = 0; i < rows.length; i++) {
            rows[i].onclick = function() {
                alert(this.rowIndex + 1);
            }
        }
    }
    </script>
    </head>
    <body>
    <table id="table1">
    <tbody>
        <tr><td>first row</td><td>first row</td><td>first row</td><td>first row</td></tr>
        <tr><td>second row</td><td>second row</td><td>second row</td><td>second row</td></tr>
        <tr><td>third row</td><td>third row</td><td>third row</td><td>third row</td></tr>
        <tr><td>fourth row</td><td>fourth row</td><td>fourth row</td><td>fourth row</td></tr>
    </tbody>
    </table>
     
    <br /><br />
     
    <body>
    </html>
    1) je ne m'appelle pas Guy...
    2) tu verras cela marche...
    le seul probleme c'est pour faire remonter l'info...
    3) tu verras que j'ai déja placé un alert pour tester...
    4) merci pour ta reponse !... je vais voir cela de plus pres !
    bon dev's...
    @+++

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    J'avais bien raison ! Il faut remplacer ton alert par une fonction avec comme paramètre la ligne cliquée.

    Comme je n'ai pas trouvé de colIndex, j'ai fais ce script qui donne les coordonnées de la case quand on clique dessus. Il suffit juste de le mettre à la place du tient

    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
    <script type="text/javascript">
    onload = function() {
        if (!document.getElementsByTagName || !document.createTextNode) return;
        var rows = document.getElementById('table1').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
        for (i = 0; i < rows.length; i++)
        {
         var col=rows[i].getElementsByTagName('td')
         for (j = 0; j < col.length; j++)
         {
          col[j].name="ligne : "+(i+1)+" ,colonne : "+(j+1)
          col[j].onclick = function()
          {
           alert(this.name)
          }
         }
    //        rows[i].onclick = function()
    //        {
    //            (this.rowIndex + 1);
    //        }
        }
    }
    </script>
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  5. #5
    Membre actif

    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Points : 248
    Points
    248
    Par défaut
    Merci de ta réponse !
    mais il ne s'agit pas de renvoyer les coordonnées de la case quand on clique dessus.

    si tu reprend la demande d'origine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function GetRows()
    {
    source=ns6? source.parentNode : source.parentElement
     
    var rows = document.getElementById('TABLE1').getElementsByTagName('tbody')[0].getElementsByTagName('tr');
            for (i = 0; i < rows.length; i++) {
                rows.onclick =  function(){
                 alert (this.rowIndex + 1)// valeur a remonter
                }
                }
    //return ???// ici je ne sais plus quoi faire !:cry: 
    }
    je voudrais faire remonter this.rowindex au niveau de GetRows ! pour faire un truc du style X=GetRows(); alert(X); x contenant this.rowIndex...
    comme l'evenement onclick est lie a une fonction , je ne sais pas faire remonter l'info au niveau de la fonction principale
    voila !
    mais merci encore de ta réponse !
    @+++

Discussions similaires

  1. [FPDF] FPDF : ligne blanche entre 2 lignes d'une MultiCell sous Firefox
    Par Mikounours dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 02/01/2014, 16h06
  2. Ligne blanche sous Firefox
    Par GuilVIII dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 22/02/2011, 19h41
  3. Ligne de tableau et diplay:block sous firefox
    Par Medde dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 19/10/2010, 17h24
  4. pb masquer ligne d'un tableau sous IE (fonctionne sous firefox)
    Par nocoment dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/04/2007, 16h37
  5. Liste et tableau en ligne sous firefox
    Par mkc44 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 19/03/2007, 11h15

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