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

jQuery Discussion :

Utiliser la classe jquery selectable pour sélectionner des cellules d'un tableau par colonne


Sujet :

jQuery

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut Utiliser la classe jquery selectable pour sélectionner des cellules d'un tableau par colonne
    Bonjour,
    je cherche à utiliser la classe ui jquery "selectable" pour sélectionner un tableau par colonne
    voici mon code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type=\"text/javascript\">
        $(function() {
            $(\"#selectable\").selectable({
                stop: function(){
                    var result = $(\"#select-result\").empty();
                    $(\".ui-selected tr > :nth-child(2)\", this).each(function(){
    					var contenu = $(this).text();
    					result.append(contenu);
                    });
                }
            });
        });
    </script>
    et le code du tableau (pour l'instant un simple tableau)

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <p id=\"feedback\">
    You've selected: <span id=\"select-result\">none</span>.
    </p>
    <table id=\"selectable\">
      <tr> <th>   A </th> <th>   B </th> <th>   C </th> </tr>
      <tr> <td>   1 </td> <td>   2 </td> <td>   3 </td> </tr>
      <tr> <td>  10 </td> <td>  20 </td> <td>  30 </td> </tr>
      <tr> <td> 100 </td> <td> 200 </td> <td> 300 </td> </tr>
    </table>

    En fait ce code m'affiche bien par exemple le contenu dans le span des cellules de la colonne 2 mais je ne sais pas comment faire en sorte que l'utilisateur puisse sélectionner les cellules dans le sens de la colonne ? est-ce que c'est prévu dans "selectable" par jquery ? existe-t-il une autre solution?

    merci pour votre aide, car je suis coincé ..
    http://www.medianeo.net

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    le sélecteur :nth-child ?
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    bonjour,
    oui effectivement je sais utiliser nth-child pour obtenir dans mon script les valeurs d'une colonne, mais je ne sais pas comment adapter le jquery selectable pour que la selection à la souris ne se fasse que dans le sens de la colonne - et sélectionner quelques cellules dans chaque colonne mais pas toute la colonne ?

    peut-être un petit exemple qui fait ça m'aiderait

    merci
    http://www.medianeo.net

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    en fait je sais utiliser nth-child pour récupérer les infos de la deuxième colonne (comme l'exemple ci-dessous), mais je ne sais pas comment faire pour que la souris ne selectionne les cellules que dans le sens d'une colonne (celle sur laquelle on se trouve au début)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(\".ui-selected tr > :nth-child(2)\", this).each(function(){
    					var contenu = $(this).text();
    					result.append(contenu);
                    });
    si quelqu'un à une idée pour m'aiguiller ...

    help !
    http://www.medianeo.net

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    en fait, en rajoutant simplement la classe ui-widget-content sur les cellules, visuellement la sélection à la souris peut se faire par colonne ou par ligne (même si je voudrais uniquement par colonne)
    par contre, je ne récupère pas les valeurs sélectionnées visuellement dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    contenu = $(\".ui-selected\").text();
    il m'affiche des résultats de sélection aléatoires ...

    je ne connais sans doute pas assez bien le jquery, j'ai vraiment besoin de votre support, merci


    Code php : 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
    <?php
    print "<!doctype html>
    <html lang=\"en\">
    <head>
    <link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css\">";
    //<link rel=\"stylesheet\" href=\"/resources/demos/style.css\">
    print "<style>
    	#feedback { font-size: 1.4em; }
    	#selectable .ui-selecting { background: #FECA40; }
    	#selectable .ui-selected { background: #F39814; color: white; }
    	#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
    	#selectable td { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
    </style>
    <script src=\"https://code.jquery.com/jquery-1.12.4.js\"></script>
    <script src=\"https://code.jquery.com/ui/1.12.1/jquery-ui.js\"></script>
    <script type=\"text/javascript\">
        $(function() {
            $(\"#selectable\").selectable({
                stop: function(){
                    var result = $(\"#select-result\").empty();
    					contenu = $(\".ui-selected\").text();
    					result.append(contenu);
                }
            });
        });
    </script>	
    </head>
    
    <body>
    <div class=\"demo\">
    <p id=\"feedback\">
    You've selected: <span id=\"select-result\">none</span>.
    </p>
    
    <table id=\"selectable\">
      <tr> <th class=\"ui-widget-content\">   A </th> <th class=\"ui-widget-content\">   B </th> <th class=\"ui-widget-content\">   C </th> </tr>
      <tr> <td class=\"ui-widget-content\">   1 </td> <td class=\"ui-widget-content\">   2 </td> <td class=\"ui-widget-content\">   3 </td> </tr>
      <tr> <td class=\"ui-widget-content\">  10 </td> <td class=\"ui-widget-content\">  20 </td> <td class=\"ui-widget-content\">  30 </td> </tr>
      <tr> <td class=\"ui-widget-content\"> 100 </td> <td class=\"ui-widget-content\"> 200 </td> <td class=\"ui-widget-content\"> 300 </td> </tr>
    </table>
    
    </body>
    </html>";
     
     
     
    ?>
    http://www.medianeo.net

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 120
    Points : 64
    Points
    64
    Par défaut
    j'ai fini par trouver la solution, grâce à l'aide d'un forum étranger, je vous la poste ça peut servir à quelqu'un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     $(function() {
            $("#selectable").selectable({
                filter: "tbody td", 
                stop: function(){
                    var result = $("#select-result"),
    				    contenu = $(".ui-selected").map(function(){ return $(this).text() }).get().join(", ");
    				    result.text(contenu);								 
                }  // fin function stop
            });	
     
        });
    http://www.medianeo.net

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

Discussions similaires

  1. [XL-2007] Code pour remplir des cellules non basé sur les colonnes
    Par Philippe_shelby dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 22/01/2015, 23h46
  2. Réponses: 7
    Dernier message: 22/03/2011, 18h00
  3. Réponses: 4
    Dernier message: 17/03/2008, 11h03
  4. Réponses: 10
    Dernier message: 11/11/2007, 15h18

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