Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/09/2011, 18h30   #1
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 99
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 99
Points : 39
Points : 39
Envoyer un message via MSN à ryu20
Par défaut plugin DataTables, créer un événement sur des listes déroulantes lorsqu'on change de valeur

Bonjour,
J'utilise JQuery et datatable pour créer un tableau.
Jusque maintenant, j'arrive à afficher un tableau avec des listes déroulantes qui permettent de filtrer les données sur une colonne.

L'étape suivant serait de créer un événement sur ces listes déroulantes quand on change de valeur. J'ai essayé de créer une classe globale pour les selects :
Code :
<select class="Filtre"><option value=""></option>
et ensuite dans la fonction ready :
Code :
1
2
3
4
$(document).ready(function()
{
$(".Filtre").click(function() {alert('Test click');});;
}
Malheureusement, j'ai beau changer la valeur de ma liste déroulante, rien ne s'affiche. Je suppose que ce n'est pas du tout la manière de faire, mais je ne trouve aucun tuto sur le sujet sur le net.

Merci.
ryu20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 18h36   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Code :
$(".Filtre").change(function() {alert('Test click');});
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 09h44   #3
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 99
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 99
Points : 39
Points : 39
Envoyer un message via MSN à ryu20
Merci pour la réponse, mais cela ne fonctionne pas.
En gros, si j'ajoute un "onClick" en précisant la fonction sur le dessus, j'ai bien ma pop up, mais en insérant la ligne que tu m'as donné dans la fonction ready, je n'obtiens rien.
ryu20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 09h47   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
En même temps
Code html :
<select class="Filtre"><option value=""></option>
c'est un peu léger comme code pour te donner de bons conseils...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 11h36   #5
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 99
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 99
Points : 39
Points : 39
Envoyer un message via MSN à ryu20
désolé, j'avais volontairement enlevé le reste du code car pour moi il ne servait à rien et est assez touffu.
Voici le script Js inclut au début de ma page :
Code :
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
<script type="text/javascript" charset="utf-8">
			(function($) {
			/*
			 * Function: fnGetColumnData
			 * Purpose:  Return an array of table values from a particular column.
			 * Returns:  array string: 1d data array 
			 * Inputs:   object:oSettings - dataTable settings object. This is always the last argument past to the function
			 *           int:iColumn - the id of the column to extract the data from
			 *           bool:bUnique - optional - if set to false duplicated values are not filtered out
			 *           bool:bFiltered - optional - if set to false all the table data is used (not only the filtered)
			 *           bool:bIgnoreEmpty - optional - if set to false empty values are not filtered from the result array
			 * Author:   Benedikt Forchhammer <b.forchhammer /AT\ mind2.de>
			 */
			$.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
				// check that we have a column id
				if ( typeof iColumn == "undefined" ) return new Array();
 
				// by default we only wany unique data
				if ( typeof bUnique == "undefined" ) bUnique = true;
 
				// by default we do want to only look at filtered data
				if ( typeof bFiltered == "undefined" ) bFiltered = true;
 
				// by default we do not wany to include empty values
				if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true;
 
				// list of rows which we're going to loop through
				var aiRows;
 
				// use only filtered rows
				if (bFiltered == true) aiRows = oSettings.aiDisplay; 
				// use all rows
				else aiRows = oSettings.aiDisplayMaster; // all row numbers
 
				// set up data array	
				var asResultData = new Array();
 
				for (var i=0,c=aiRows.length; i<c; i++) {
					iRow = aiRows[i];
					var aData = this.fnGetData(iRow);
					var sValue = aData[iColumn];
 
					// ignore empty values?
					if (bIgnoreEmpty == true && sValue.length == 0) continue;
 
					// ignore unique values?
					else if (bUnique == true && jQuery.inArray(sValue, asResultData) > -1) continue;
 
					// else push the value onto the result data array
					else asResultData.push(sValue);
				}
				return asResultData;
			}}(jQuery));
 
			function fnCreateSelect( aData )
			{
				var r='<select class="Filtre"><option value=""></option>', i, iLen=aData.length;
				for ( i=0 ; i<iLen ; i++ )
				{
					r += '<option value="'+aData[i]+'">'+aData[i]+'</option>';
				}
				return r+'</select>';
			}
 
			$(document).ready(function() {
 
				/* Initialise the DataTable */
				var oTable = $('#Activite').dataTable( {
					"oLanguage": {
						"sInfo": "Il y a _TOTAL_ résultats correspondants",
						"sInfoFiltered": "(filtrés des _MAX_ résultats totaux)",
						"sInfoEmpty": "",
						"sEmptyTable": "Il n'y a aucun résultat correspondant"
					},
					"bPaginate": false,
					"bFilter": true
				} );
				var oTable2 = $('#TypeActivite').dataTable( {
					"oLanguage": {
						"sSearch": "Search all columns:",
						"sInfo": "Il y a _TOTAL_ résultats correspondants",
						"sInfoFiltered": "(filtrés des _MAX_ résultats totaux)",
						"sInfoEmpty": "",
						"sEmptyTable": "Il n'y a aucun résultat correspondant"
					},
					"bPaginate": false,
					"bFilter": true
				} );
 
				$(".Filtre").change(function() {alert('Test click');});
				/* Add a select menu for each TH element in the table footer */
				$("td").each
				( 
					function ( i ) 
					{
						if(i == 2 || i==3 || i==5 || i==6 || i==10)
						{
							this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i).sort() );
							$('select', this).change
							( 
								function () 
								{
									oTable.fnFilter($(this).val(), i, true);
									oTable2.fnFilter($(this).val(), i, true);
								} 
							);
						}
					} 
				);
			} );
 
		</script>
et voilà le code qui correspond à mes listes déroulantes :
Code :
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
<table>
<thead>
<tr>
			<th style="display:none;"></th>
			<th style="display:none;"></th>
			<th>Priorite</th>
			<th>Agent</th>
			<th style="display:none;"></th>
			<th>Groupe d'activité</th>
			<th>Type d'activité</th>
			<th style="display:none;"></th>
			<th style="display:none;"></th>
			<th style="display:none;"></th>
			<th>Processus</th>
</tr>
</thead>
<tbody><tr>
			<td style="display:none;"></td>
			<td style="display:none;"></td>
			<td><select class="Filtre"><option value=""></option><option value="1">1</option></select></td>
			<td><select class="Filtre"><option value=""></option><option value="test1">test1</option><option value="test2">test2</option><option value="test3">test3</option></select></td>
			<td style="display:none;"></td>
			<td><select class="Filtre" ><option value=""></option><option value="toto">toto</option><option value="titi">titi</option></select></td>
			<td><select class="Filtre"><option value=""></option><option value="act1">act1</option><option value="act2">act2</option><option value="act3">act3</option></select></td>
			<td style="display:none;"></td>
			<td style="display:none;"></td>
			<td style="display:none;"></td>
			<td><select class="Filtre"><option value=""></option><option value="Non">Non</option></select></td>
</tr>
</tbody></table>
Il manque la partie remplissage du tableau final, mais je doute que cela puisse aider ici (c'est un bête remplissage de <table>).

Merci
ryu20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/09/2011, 01h41   #6
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

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

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Je ne connais pas bien le plugin DataTables, j'ai donc pris le temps de découvrir le code de l'exemple de la documentation.

J'ai compris que vous souhaitez déclencher un événement lorsque l'utilisateur change la valeur de sélection d'une colonne. Dans mon code de test, je montre aussi comment prendre en compte l'input "Search" qui modifie le contenu du tableau pour chaque frappe de caractère.

Code :
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
<!doctype html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<meta name="Author" content="Daniel Hagnoul">
	<title>Forum jQuery</title>
	<link rel='stylesheet' href='http://fonts.googleapis.com/css?family=Redressed&subset=latin&v2'>
	<link rel="stylesheet" href="http://danielhagnoul.developpez.com/lib/jPicker/css/jPicker.dvjh-1.1.6.min.css" />
	<style>
		@import "../DataTables-1.8.1/media/css/demo_page.css";
		@import "../DataTables-1.8.1/media/css/demo_table.css";
 
		/* Base */
		div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img {margin:0; padding:0; }
		body {background-color:rgba(210, 214, 98, 0.5); color:#000000; font-family:sans-serif; font-size:medium; font-style:normal; font-weight:normal; line-height:normal; letter-spacing:normal; }
		h1,h2,h3,h4,h5 {font-family:'Redressed', cursive; padding:6px; }
		p, div, td {word-wrap:break-word; }
		pre, code {white-space:pre-wrap; word-wrap:break-word; }
		a {-webkit-transition: all 0.3s ease-in; -moz-transition: all 0.3s ease-in; -o-transition: all 0.3s ease-in; transition: all 0.3s ease-in; }
		img, input, textarea, select {max-width:100%; }
        img {border:none; }
		h1 {font-size:2em; text-shadow: 4px 4px 4px #bbbbbb; text-align:center; }
		p {padding:6px; }
        ul,ol,dl {list-style:none; padding-left:6px; padding-top:6px; }
        li {padding-bottom:6px; }
		.conteneur {width:95%; min-width:800px; min-height:300px; margin:12px auto; background-color:#ffffff; color:#000000; border:1px solid #666666; }
		footer {margin-left:36px; }
 
		/* article */
		/*
		.conteneur {border-collapse:separate; border-spacing:6px; }
		.ligne {display:table-row; }
		.ligne:nth-of-type(1) {height:200px; }
		.ligne:nth-of-type(2) {height:300px; }
		article {display:table-cell; text-align:center; vertical-align:middle; border:1px dotted grey; }
		article:nth-of-type(1) {width:200px; }
		article:nth-of-type(2) {width:300px; }
		*/
 
		/* --- */
		.conteneur {min-height:600px; }
		.datatable {max-width:800px; margin:12px; }
	</style>
</head>
<body>	
	<h1>Forum jQuery</h1>
	<section class="conteneur">
		<article class="datatable">
			<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"> 
				<thead> 
					<tr> 
						<th>Rendering engine</th> 
						<th>Browser</th> 
						<th>Platform(s)</th> 
						<th>Engine version</th> 
						<th>CSS grade</th> 
					</tr> 
				</thead> 
				<tbody> 
					<tr class="gradeX"> 
						<td>Trident</td> 
						<td>Internet
							 Explorer 4.0</td> 
						<td>Win 95+</td> 
						<td class="center">4</td> 
						<td class="center">X</td> 
					</tr> 
					<tr class="gradeC"> 
						<td>Trident</td> 
						<td>Internet
							 Explorer 5.0</td> 
						<td>Win 95+</td> 
						<td class="center">5</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Trident</td> 
						<td>Internet
							 Explorer 5.5</td> 
						<td>Win 95+</td> 
						<td class="center">5.5</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Trident</td> 
						<td>Internet
							 Explorer 6</td> 
						<td>Win 98+</td> 
						<td class="center">6</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Trident</td> 
						<td>Internet Explorer 7</td> 
						<td>Win XP SP2+</td> 
						<td class="center">7</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Trident</td> 
						<td>AOL browser (AOL desktop)</td> 
						<td>Win XP</td> 
						<td class="center">6</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Firefox 1.0</td> 
						<td>Win 98+ / OSX.2+</td> 
						<td class="center">1.7</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Firefox 1.5</td> 
						<td>Win 98+ / OSX.2+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Firefox 2.0</td> 
						<td>Win 98+ / OSX.2+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Firefox 3.0</td> 
						<td>Win 2k+ / OSX.3+</td> 
						<td class="center">1.9</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Camino 1.0</td> 
						<td>OSX.2+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Camino 1.5</td> 
						<td>OSX.3+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Netscape 7.2</td> 
						<td>Win 95+ / Mac OS 8.6-9.2</td> 
						<td class="center">1.7</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Netscape Browser 8</td> 
						<td>Win 98SE+</td> 
						<td class="center">1.7</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Netscape Navigator 9</td> 
						<td>Win 98+ / OSX.2+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.0</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.1</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1.1</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.2</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1.2</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.3</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1.3</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.4</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1.4</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.5</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1.5</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.6</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">1.6</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.7</td> 
						<td>Win 98+ / OSX.1+</td> 
						<td class="center">1.7</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Mozilla 1.8</td> 
						<td>Win 98+ / OSX.1+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Seamonkey 1.1</td> 
						<td>Win 98+ / OSX.2+</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Gecko</td> 
						<td>Epiphany 2.20</td> 
						<td>Gnome</td> 
						<td class="center">1.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>Safari 1.2</td> 
						<td>OSX.3</td> 
						<td class="center">125.5</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>Safari 1.3</td> 
						<td>OSX.3</td> 
						<td class="center">312.8</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>Safari 2.0</td> 
						<td>OSX.4+</td> 
						<td class="center">419.3</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>Safari 3.0</td> 
						<td>OSX.4+</td> 
						<td class="center">522.1</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>OmniWeb 5.5</td> 
						<td>OSX.4+</td> 
						<td class="center">420</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>iPod Touch / iPhone</td> 
						<td>iPod</td> 
						<td class="center">420.1</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Webkit</td> 
						<td>S60</td> 
						<td>S60</td> 
						<td class="center">413</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 7.0</td> 
						<td>Win 95+ / OSX.1+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 7.5</td> 
						<td>Win 95+ / OSX.2+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 8.0</td> 
						<td>Win 95+ / OSX.2+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 8.5</td> 
						<td>Win 95+ / OSX.2+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 9.0</td> 
						<td>Win 95+ / OSX.3+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 9.2</td> 
						<td>Win 88+ / OSX.3+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera 9.5</td> 
						<td>Win 88+ / OSX.3+</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Opera for Wii</td> 
						<td>Wii</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Nokia N800</td> 
						<td>N800</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Presto</td> 
						<td>Nintendo DS browser</td> 
						<td>Nintendo DS</td> 
						<td class="center">8.5</td> 
						<td class="center">C/A<sup>1</sup></td> 
					</tr> 
					<tr class="gradeC"> 
						<td>KHTML</td> 
						<td>Konqureror 3.1</td> 
						<td>KDE 3.1</td> 
						<td class="center">3.1</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>KHTML</td> 
						<td>Konqureror 3.3</td> 
						<td>KDE 3.3</td> 
						<td class="center">3.3</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>KHTML</td> 
						<td>Konqureror 3.5</td> 
						<td>KDE 3.5</td> 
						<td class="center">3.5</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeX"> 
						<td>Tasman</td> 
						<td>Internet Explorer 4.5</td> 
						<td>Mac OS 8-9</td> 
						<td class="center">-</td> 
						<td class="center">X</td> 
					</tr> 
					<tr class="gradeC"> 
						<td>Tasman</td> 
						<td>Internet Explorer 5.1</td> 
						<td>Mac OS 7.6-9</td> 
						<td class="center">1</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeC"> 
						<td>Tasman</td> 
						<td>Internet Explorer 5.2</td> 
						<td>Mac OS 8-X</td> 
						<td class="center">1</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Misc</td> 
						<td>NetFront 3.1</td> 
						<td>Embedded devices</td> 
						<td class="center">-</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeA"> 
						<td>Misc</td> 
						<td>NetFront 3.4</td> 
						<td>Embedded devices</td> 
						<td class="center">-</td> 
						<td class="center">A</td> 
					</tr> 
					<tr class="gradeX"> 
						<td>Misc</td> 
						<td>Dillo 0.8</td> 
						<td>Embedded devices</td> 
						<td class="center">-</td> 
						<td class="center">X</td> 
					</tr> 
					<tr class="gradeX"> 
						<td>Misc</td> 
						<td>Links</td> 
						<td>Text only</td> 
						<td class="center">-</td> 
						<td class="center">X</td> 
					</tr> 
					<tr class="gradeX"> 
						<td>Misc</td> 
						<td>Lynx</td> 
						<td>Text only</td> 
						<td class="center">-</td> 
						<td class="center">X</td> 
					</tr> 
					<tr class="gradeC"> 
						<td>Misc</td> 
						<td>IE Mobile</td> 
						<td>Windows Mobile 6</td> 
						<td class="center">-</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeC"> 
						<td>Misc</td> 
						<td>PSP browser</td> 
						<td>PSP</td> 
						<td class="center">-</td> 
						<td class="center">C</td> 
					</tr> 
					<tr class="gradeU"> 
						<td>Other browsers</td> 
						<td>All others</td> 
						<td>-</td> 
						<td class="center">-</td> 
						<td class="center">U</td> 
					</tr> 
				</tbody> 
				<tfoot> 
					<tr> 
						<th></th> 
						<th></th> 
						<th></th> 
						<th></th> 
						<th></th> 
					</tr> 
				</tfoot> 
			</table>
		</article>
	</section>
	<footer itemscope itemtype="http://data-vocabulary.org/Person">
		<time datetime="2011-09-03T01:40:00.000+02:00" pubdate>2011-09-03</time> <span itemprop="name">Daniel Hagnoul</span> <a href="http://www.developpez.net/forums/u285162/danielhagnoul/" itemprop="url">@danielhagnoul</a>
	</footer>
	<script charset="utf-8" src="http://code.jquery.com/jquery-1.6.3.min.js"></script>
	<script charset="utf-8" src="../DataTables-1.8.1/media/js/jquery.dataTables.js"></script>
	<script charset="utf-8" src="http://danielhagnoul.developpez.com/lib/jPicker/jpicker-1.1.6.min.js"></script>
	<script>
		// Date ISO format long US
		Date.prototype.formatISO = function(){
			this._nowFormat = 'aaaa-mm-jjThh:ii:ss.000Szz:00';
			this._toLen2 = function(_nowStr){
				_nowStr = _nowStr.toString();
				return ('0'+_nowStr).substr(-2,2);
			};
			this._nowFormat = this._nowFormat.replace(/j+/, this._toLen2(this.getDate()));
			this._nowFormat = this._nowFormat.replace(/m+/, this._toLen2(this.getMonth()+1));
			this._nowFormat = this._nowFormat.replace(/a+/, this.getFullYear());
			this._nowFormat = this._nowFormat.replace(/h+/, this._toLen2(this.getHours()));
			this._nowFormat = this._nowFormat.replace(/i+/, this._toLen2(this.getMinutes()));
			this._nowFormat = this._nowFormat.replace(/s+/, this._toLen2(this.getSeconds()));
			this._nowFormat = this._nowFormat.replace(/S+/, (this.getTimezoneOffset() < 0) ? ("+") : ("-"));
			this._nowFormat = this._nowFormat.replace(/z+/, this._toLen2(Math.abs(this.getTimezoneOffset()/60)));
			return this._nowFormat;
		};
 
		(function($){
			/*
			 * Function: fnGetColumnData
			 * Purpose:  Return an array of table values from a particular column.
			 * Returns:  array string: 1d data array 
			 * Inputs:   object:oSettings - dataTable settings object. This is always the last argument past to the function
			 *           int:iColumn - the id of the column to extract the data from
			 *           bool:bUnique - optional - if set to false duplicated values are not filtered out
			 *           bool:bFiltered - optional - if set to false all the table data is used (not only the filtered)
			 *           bool:bIgnoreEmpty - optional - if set to false empty values are not filtered from the result array
			 * Author:   Benedikt Forchhammer <b.forchhammer /AT\ mind2.de>
			 */
			$.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
				// check that we have a column id
				if ( typeof iColumn == "undefined" ) return new Array();
 
				// by default we only wany unique data
				if ( typeof bUnique == "undefined" ) bUnique = true;
 
				// by default we do want to only look at filtered data
				if ( typeof bFiltered == "undefined" ) bFiltered = true;
 
				// by default we do not wany to include empty values
				if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true;
 
				// list of rows which we're going to loop through
				var aiRows;
 
				// use only filtered rows
				if (bFiltered == true) aiRows = oSettings.aiDisplay; 
				// use all rows
				else aiRows = oSettings.aiDisplayMaster; // all row numbers
 
				// set up data array	
				var asResultData = new Array();
 
				for (var i=0,c=aiRows.length; i<c; i++) {
					iRow = aiRows[i];
					var aData = this.fnGetData(iRow);
					var sValue = aData[iColumn];
 
					// ignore empty values?
					if (bIgnoreEmpty == true && sValue.length == 0) continue;
 
					// ignore unique values?
					else if (bUnique == true && jQuery.inArray(sValue, asResultData) > -1) continue;
 
					// else push the value onto the result data array
					else asResultData.push(sValue);
				}
 
				return asResultData;
			};
		})(jQuery);
 
		$(function(){
			/* -- */
			console.log(new Date().formatISO());
 
			function fnCreateSelect( aData )
			{
				var r='<select><option value=""></option>', i, iLen=aData.length;
				for ( i=0 ; i<iLen ; i++ )
				{
					r += '<option value="'+aData[i]+'">'+aData[i]+'</option>';
				}
				return r+'</select>';
			}
 
			var oTable = $('#example').dataTable({
				"oLanguage": {
					"sSearch": "Search all columns:"
				}
			});
 
			// Add a select menu for each TH element in the table footer
			$("tfoot th", oTable).each( function ( i ) {
				this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i) );
 
				$('select', this).change( function () {
					oTable.fnFilter( $(this).val(), i );
 
					oTable.trigger("filtre.dataTable", [i, $(this).val()]);
				});
			});
 
			/*
			 * La case search all columns !
			 * Cet input modifie le tableau au keyup !
			 * Il y a donc un événement pour chaque
			 * changement de caratère
			 */
			$("input", "div.dataTables_filter").keyup(function(){
				oTable.trigger("filtre.dataTable", [-1, $(this).val()]);
			});
 
			oTable.bind("filtre.dataTable", function(event, colNumber, value){
				var str = "Le " + new Date(event.timeStamp).toLocaleString() + ", l'utilisateur a changé le critère de tri de la colonne " + (colNumber + 1) +
							". Nouvelle valeur = " + value + ".";
 
				alert(str);
			});
 
			/* jPicker : http://www.digitalmagicpro.com/jPicker/, outil pour choisir rapidement une couleur */
			$.fn.jPicker.defaults.images.clientPath="http://danielhagnoul.developpez.com/lib/jPicker/images/";
			$(".conteneur").jPicker({window:{expandable:true,title:"jPicker : choissisez une couleur :",
			alphaSupport:true,position:{x:'screenCenter',y:'top'}},color:{ active:new $.jPicker.Color({ r: 210, g: 214, b: 98, a: 128 })}},
			function(color, context){var c = color.val("all");if (c){$("body").css("backgroundColor", "rgba(" +
			c.r + "," + c.g + "," + c.b + "," + (c.a/255).toFixed(2) + ")");}});
		});
	</script>
</body>  
</html>
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2011, 11h53   #7
Nouveau Membre du Club
 
Inscription : octobre 2004
Messages : 99
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 99
Points : 39
Points : 39
Envoyer un message via MSN à ryu20
c'est exactement ce que je recherchai.

Merci beaucoup
ryu20 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h32.


 
 
 
 
Partenaires

Hébergement Web