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 :

Je cherche un plugin table qui permet d'affecter une colonne entière


Sujet :

jQuery

  1. #1
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 290
    Points : 217
    Points
    217
    Par défaut Je cherche un plugin table qui permet d'affecter une colonne entière
    Bonjour à tous,

    je cherche à obtenir un tableau qui puisse avoir une fonctionnalité d'affectation possible à une colonne entière.

    Par exemple, j'ai un tableau avec une colonne dans laquelle je veux affecter pour chacune des lignes, la valeur "vu".

    Est-ce que cela existe ?

    Merci d'avance pour vos réponses / remarques.

  2. #2
    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
    y'a des tableaux editables ...
    http://plugins.jquery.com/project/uiTableEdit

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 937
    Points
    22 937
    Billets dans le blog
    125
    Par défaut
    Bonjour

    On peut réaliser cela sans un plug-in spécifique, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function modifier(id, col, value){
    	$("#"+id).find("tr").each(function(i, item){
    		var name = $(item).parent()[0].nodeName;
     
    		if ((name == "TBODY")){
    			$(item).find("td").eq(col-1).text(value);
    		}
    	});
    }
     
    // Table id, numéro de colonne sur base 1, nouvelle valeur
    modifier("maTable", 2, "vu");

  4. #4
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 290
    Points : 217
    Points
    217
    Par défaut
    Merci pour vos réponses.

    uitable edit semble assez intéressant. Il va falloir que je teste çà pour voir si dans le libellé de colonne, en cliquant dessus, apparaisse un checkbox, un select, un input type="text" ou autre.

    Merci Daniel pour le snippet. Et en plus très concis.
    S'il fallait affecter une valeur définie, j'aurai pu utiliser cela. A moins que le fait de rajouter des input de différents types peut se faire facilement, que ce soit plus efficace que d'utiliser un plugin.

    Vous avez déjà utilisé uitable edit pour voir ses capacités ?
    Il semble être le seul plugin qui fasse ces tâches là. j'en ai croisé un autre dont le lien est mort, appelé tEditable.

  5. #5
    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
    sans jquery j'avais fait ça il y a déja quelques années ...

    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
    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
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
     
    <html>
    <head>
     
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     
    <title>Nouvelle page 1</title>
    <style type='text/css'>
    td,#saisie { border:solid 1px black;
         			width:100px;
         			font-family:verdana;
         			font-size:12px;
         			line-height:20px;
         			}
    #saisie {color:red;}
     
     
     
    html body {margin:0;}
     
         </style>
     
    <script type='text/javascript'>
     var currentCell
    function edit(Obj){
      currentCell=Obj; 
      var editbox=document.getElementById('saisie')
      editbox.style.top=currentCell.offsetTop+'px';
      editbox.style.left=currentCell.offsetLeft+'px';
      editbox.style.width=currentCell.offsetWidth+'px';
      editbox.style.height=currentCell.offsetHeight+'px';
      editbox.style.fontSize=currentCell.style.fontSize;
      editbox.style.display='';
      if (!document.all){editbox.style.paddingTop='4px'};
      editbox.value=(currentCell.innerHTML!="&nbsp;")?currentCell.innerHTML:'';
      editbox.focus();
      editbox.value=editbox.value
      }
     
     
    function editSelect(Obj1){
      editsel.style.width=currentCell.offsetWidth+'px';
      editsel.style.height=currentCell.offsetHeight+'px';
      var LesOptions=Obj1.getAttribute("ArrayOpt").split(';');
      while(editsel.options.length>1){editsel.removeChild(editsel.options[editsel.options.length-1])}
      var cellMid=Math.round(currentCell.offsetHeight/2,0);
      editsel.style.top=currentCell.offsetTop+cellMid-10+'px';
      editsel.style.left=currentCell.offsetLeft+'px';
      editsel.style.fontSize=currentCell.style.fontSize;
      editsel.style.visibility="visible";
     
      for(i=0;LesOptions[i];i++){
          var newOpt=document.createElement('option');
          newOpt.value=LesOptions[i];
          newOpt.innerHTML=LesOptions[i];
          if(newOpt.innerHTML==currentCell.innerHTML){newOpt.selected='selected';}
          editsel.appendChild(newOpt);
          }
       editsel.focus();   
      }  
     
    function copyValue(Box){
     
    TransValue="";
    switch(Box.id){
      case "saisie" :   TransValue=(Box.value.length>0)?Box.value:"&nbsp;";
    						Box.value=""
    						Box.style.display='none';
    						break;
      case "MySel":     TransValue=(Box.options.selectedIndex==-1)?"&nbsp;":Box.options[Box.selectedIndex].value;
    						Box.style.top=0;
    						Box.style.left=0;
    						Box.style.visibility='hidden';	
    						break;
    						}
    currentCell.innerHTML=TransValue;
    }
     
     
    function Myinit(){
        var TabTr=document.getElementsByTagName('tr');
     
        for(i=0;TabTr[i];i++){
              var TabTd=TabTr[i].getElementsByTagName('td');
    	       for(j=0;TabTd[j];j++){ 
    	       				TabTd[j].id="Cell"+i+"_"+j;
    	       				if(j==3){TabTd[j].ondblclick=function(){currentCell=this;
    	       															editSelect(this)};
    	       				                                      }
    	       				else{TabTd[j].ondblclick=function(){edit(this)}}
    				          }
       }
    editsel=document.getElementById('MySel');				          
     }     
    window.onResize=function(){alert('coucou');}
     </script>    
     
    </head>
     
    <body onload="Myinit()" >
    <table >
    	<tr>
    			<td>bonjour</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td ArrayOpt="S;E;L">&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    	</tr>	
    	<tr>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td ArrayOpt="Bonjour;Aurevoir;coucou; salut">&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    	</tr>				
    	<tr>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td ArrayOpt="Banane;Oranges;Kiwi;fraises">&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    	</tr>				
    	<tr>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td ArrayOpt="chocolat;vanille;menthe;café;grenadine">&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    	</tr>				
    	<tr>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    			<td ArrayOpt="rouge;vert;bleu;noir;jaune;marron;taupe;violet;blanc;saumon">&nbsp;</td>
    			<td>&nbsp;</td>
    			<td>&nbsp;</td>
    	</tr>				
    	<tr>
    			<td></td>
    			<td></td>
    			<td></td>
    			<td ArrayOpt="Bonjour;Aurevoir;coucou; salut"></td>
    			<td></td>
    			<td></td>
    	</tr>		
    </table>
     
    <input type='text'	style='position:absolute;display:none;top:0;left:0;width:150px;' id='saisie' onblur="copyValue(this)" value=''/>
    <select id="MySel" name="hello" style='position:absolute;visibility:hidden;top:0;left:0;width:150px;' onblur="copyValue(this)" >
    <option value="&nbsp;">-selectionnez</option>
    </select>			
     
    </body>

  6. #6
    Membre actif
    Inscrit en
    Mars 2004
    Messages
    290
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 290
    Points : 217
    Points
    217
    Par défaut
    Bonjour,

    merci pour ce code également.
    Il est nickel.

    J'ai de la bonne matière avec l'aide que vous m'avez apporté.

    Merci encore. Bonne journée.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/09/2012, 11h30
  2. [DEBUTANT]ecrire d'une focntion qui permet de construire une arborecence
    Par eclipse012 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 24/01/2007, 17h40
  3. Réponses: 4
    Dernier message: 09/08/2006, 11h41
  4. Réponses: 6
    Dernier message: 25/12/2005, 19h00
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 18h24

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