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 :

[Article] Créer une table HTML éditable en JavaScript v1.0


Sujet :

JavaScript

  1. #1
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut [Article] Créer une table HTML éditable en JavaScript v1.0
    Je vous propose un tutoriel qui vous montrera comment créer une classe JavaScript permettant de créer une table HTML éditable et, je l'espère, "sexy" ^^.

    Ce tutoriel est le premier lot (v1.0). C'est-à-dire que d'autres suivront avec leur lot d'évolutions.

    Actuellement et pour se mettre dans l'ambiance, la table résultante permet l'affichage des données (encore heureux), l'édition à la "Excel" (au double clic apparaît un input), la récupération des données, la création de nouvelles lignes et colonnes.

    A venir :
    - rendre une table, déjà créée dans votre document HTML, éditable
    - tri
    - navigation avec les flèches
    - formules de calcul entre les colonnes
    - select, checkbox, radio, bouton... à la place de l'input
    ...

    N'hésitez à me faire part de vos remarques, optimisations, corrections, suggestions, encouragements. Tout ce qui peut être utile à améliorer ce tutoriel et à proposer un contrôle web performant.

    En espérant que cela vous plaira,
    BBS

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Si la suite est de la même veine, c'est tout bon !
    En tout cas, félicitations pour cet article très complet !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Sublime code !!!!

    1 - J'ai adapté ta solution pour mes besoin, seulement j'ai un petit souci, le onblur sous FF ne marche pas chez moi alors qu'il fonctionne sur ton exemple....

    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
    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
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Portail des experts</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta http-equiv="cache-control" content="no-cache" />
    <META NAME="Description" CONTENT="Systeme de partage d'information et de travail collaboratif des experts de la SMACL - Portail des experts automobiles de la smacl">
    <link rel="icon" type="image/gif" href="../templates/divers/icone.gif" />
    <script type="text/javascript" src="../commun/javascript.js"></script>
    <script type="text/javascript" src="../commun/jquery.js"></script>
    <style type="text/css">
    body { margin:0px; font-family:arial,helvetica,sans-serif; font-size:11px;  color:#000;   background-color:#fff;  background-attachment:fixed; background-position:center center; background-repeat:no-repeat; }
     
    /* BLOCKS PRINCIPAUX */
    .menu_td				{ width:260px; font-weight:bold; }
    .menu_block				{ margin-bottom:5px; }
    .menu_ligne				{ cursor:pointer; margin:0px; margin-top:5px; }
    .menu_ligne:hover		{ color:#999; }
    .content				{ padding:10px; vertical-align:top;  border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  }
    .div_menu_horizontal	{ float:left; padding:2px;  border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  }
    .div_center				{ width:1100px; margin-left:auto; margin-right:auto; margin-top:10px; }
     
    /* CONTENU */
    .div_element_deselect	{ float:left; margin:7px; margin-top:0px; margin-left:0px;  border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat; 	}
    .div_element_select		{ float:left; margin:7px; margin-top:0px; margin-left:0px;  border:1px solid #000; -moz-border-radius:4px; background-color:#aaa; 	}
    .div_element_deselect:hover	{ border:1px solid #aaa; }
    .div_element_options	{ float:left; margin-top:-1px; margin-left:-1px; }
    .div_element_contenu	{ height:100%; position:relative; overflow:hidden; background-repeat:no-repeat; line-height:1; }
    .div_element_table		{ height:100%; width:100%; }
    .div_element_table_stat	{ table-layout: fixed; height:95%; width:95%; border:1px solid black; border-collapse:collapse; margin-left:auto; margin-right:auto; }
    .div_element_table_stat tbody td { height:40px; vertical-align:middle; font-size:11px; border:1px solid black;}
    .div_element_td			{ vertical-align:middle; font-weight:bold; font-size:11px;}
    .div_element_image		{ width:85px; cursor:pointer; vertical-align:middle }
    .div_element_infos		{ text-align:center; font-weight:bold; vertical-align:middle; }
    .div_element_aucun		{ padding:2px;  border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  height:80px; padding-top:50px; text-align:center; font-weight:bold; font-size:14px; }
    .div_element_page		{ padding:2px;  border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  padding-top:50px; text-align:center; font-weight:bold; font-size:14px; }
    .div_infos				{ border: dotted 1px #700; -moz-border-radius:5px; background-color:#300; color:#fff; text-align:center; font-style:italic; padding:5px; }
     
    /* LIENS */
    a						{  color:#000;  cursor:pointer; text-decoration:none; }
    a:hover					{  color:#555;  }
    .lien					{  color:#000;  cursor:pointer; font-weight:bold; text-decoration:none; }
    .lien:hover				{  color:#555;  }
    .lien_select			{  color:#F77D19;  cursor:pointer; font-weight:bold;text-decoration:none; }
    .lien_select2			{  color:#c60;  cursor:pointer; font-weight:bold;text-decoration:none; }
     
    /* ICONE */
    .icone_module 			{ vertical-align:top; cursor:pointer; margin:5px; height:34px; }
    .icone_module_select	{ vertical-align:top; cursor:pointer; margin:3px; margin-top:16px; }
    .icone_module_masque	{ vertical-align:top; cursor:pointer; margin:3px; opacity:0.5; filter:alpha(opacity=50); }
    .icone_module_masque:hover	{ opacity:1;filter:alpha(opacity=100); }
    .icone					{ opacity:0.9; filter:alpha(opacity=90); }
    .icone:hover			{ opacity:1; filter:alpha(opacity=100); }
     
    /* LIBELLES & CHAMPS DES FORMULAIRES  */
    input[type=text], input[type=password], input[type=file], textarea,	{ background-color:#eee; border: #999 1px solid; font-size:11px; font-family:Arial,Helvetica,sans-serif; font-weight:normal; color:#000; }	/* champs texte ou textarea */
    input[type=text]:focus, input[type=password]:focus, textarea:focus, { background-color:#fff; border: #ccc 1px solid; }
    input[type=submit]		{ color: #000; width:120px; font-size:11px; }
    fieldset				{ margin-top:15px; padding:8px;  background-color:#ccc; border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  }
    legend					{ font-weight:bold; padding-bottom:10px; padding-left:5px; padding-right:5px; }
    select					{ background-color:#fff; font-size:11px; color:#000; }
    form					{ margin:0px; padding:0px; }
    .form_libelle			{ font-weight:bold; }
    .menu_txt_lecture		{ cursor:pointer;  color:#c60;  font-weight:bold; }
    .menu_txt_ecriture		{ cursor:pointer;  color:#F77D19;  font-weight:bold; }
     
    /* CALENDRIER */
    .cal_tableau				{ width:95%; text-align:center; }
    .cal_libelle_jour			{ font-style:italic; padding-top:5px; padding-bottom:5px; }
    .cal_jour_normal			{ cursor:pointer; }
    .cal_jour_normal:hover		{ text-decoration:underline; }
    .cal_jour_du_jour			{ cursor:pointer; font-weight:bold; color:#f33; }
    .cal_jour_selection			{ cursor:pointer; font-weight:bold; }
    .cal_jour_selection:hover	{ text-decoration:underline; }
     
    /* DIVERS CLASS */
    .menu_flottant			{ position:absolute; z-index:100; display:none; width:auto; text-align:left; margin:10px 0px; padding:10px; cursor:auto; -moz-border-radius:5px; font-weight:bold; font-size:11px;  border:2px solid #aaa; color:#000; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  }
    .info					{ cursor:help; }
    .cacher					{ display:none; }
    .infobulle				{ position:absolute; z-index:10000; visibility:hidden; padding:7px; border:1px solid #ccc; -moz-border-radius:4px; background-image:url(../templates/divers/fond_opaque_noir.png); }
    .infobulle_contenu		{ padding:7px; max-width:300px; color:#fff; font-weight:bold; background-color:#000; }
    .page_fantome			{ position:fixed; top:0px; left:0px; z-index:100000; display:none; width:100%; height:100%; text-align:center; vertical-align:middle; color:#fff; background-image:url(../templates/divers/fond_opaque_noir.png); }
    .page_fantome_contenu	{ width:100%; height:100%; text-align:center; vertical-align:middle; }
    .div_accueil			{ width:700px; margin:auto;  border:1px solid #777; -moz-border-radius:4px; background-color:#fff; background-image:url(../templates/divers/background.jpg); background-repeat:no-repeat;  font-weight:bold; text-align:center;	}
    .titre_popup			{ font-weight:bold; color:#000; text-align:center; padding:5px; overflow:hidden; background-image:url(../templates/divers/popup_fond_titre.jpg); background-position:bottom left; }
    .tr_survol:hover		{ background-color: #ddd;  }
     
    /* DIVERS BALISES */
    img						{ border:0px; vertical-align:middle; }
    table					{ margin:0px; padding:0px; }
    td						{ vertical-align:top; }
    hr						{ height:1px; opacity:0.35; filter:alpha(opacity=35); }
     
    /* IMPRESSION */
    @media print {
    	body		{ background-color:#fff; color:#000; }
    	.noprint	{ display:none; }
    }
    </style><!--  AGORA-PROJECT is under the GPL. AGORA-PROJECT 2003-2009  -->
    <!--  GNU Public License: http://www.fsf.org/copyleft/gpl.html  -->
    </head>
     
     
    <body>
    <div id="infobulle" class="infobulle"></div>
    <div id="page_fantome" class="page_fantome">
    	<table class="page_fantome_contenu" cellpadding="0" cellspacing="0"><tr><td id="page_fantome_contenu">&nbsp;</td></tr></table>
    </div>
    <table style="position:fixed;top:0px;left:0px;z-index:1000;width:100%;min-width:1000px;" cellpading="0" cellspacing="0" class="noprint"><tr>
    	<td style="width:50px;padding-top:6px;padding-left:10px; background-image:url(../templates/divers/header_gauche.png); background-repeat:repeat-x;" class="lien_select" onMouseOver="afficher('menu_header_principal',true);" onMouseOut="afficher('menu_header_principal',false);" onMouseDown="return false;" onselectstart="return false;">
    		<div class="menu_flottant" id="menu_header_principal">
    			<div style="margin-bottom:3px">Affichage :</div> &nbsp; <a href='/module_darva/index.php?affichage_objet=normal' class='lien_select'>&Eacute;l&eacute;ments qui me sont affect&eacute;s</a><br /> &nbsp; <a href='/module_darva/index.php?affichage_objet=auteur' class='lien'>&Eacute;l&eacute;ments que j'ai cr&eacute;&eacute;s</a><br /> &nbsp; <a href='/module_darva/index.php?affichage_objet=tout' class='lien'>Tous les &eacute;l&eacute;ments de l'espace</a><br /><hr align="center" width="250px" /><div class="menu_ligne" onClick="redir('../index.php?deconnexion=oui');"><img src="../templates/divers/sortir.png" /> &nbsp; D&eacute;connexion du portail</div><hr align="center" width="250px" /><div class="menu_ligne" style="cursor:help"  onMouseOver="bulle('5 % de 100 Mo');" onMouseOut="bullefin();" ><img src="../templates/divers/espace_disque_vert.png" /> &nbsp; Espace disque utilis&eacute;  : 4.64 Mo</div>						
    		</div>
    		<img src="../templates/divers/logo_header.png" />			
    	</td>
    	<td style="vertical-align:top; background-image:url(../templates/divers/header_gauche.png); background-repeat:repeat-x;">
    		<table cellpadding="0px" cellspacing="0px">
    			<tr>
    				<td style="height:25px;vertical-align:middle;font-weight:bold;">
    					Christophe Marraillac				</td>
    			</tr>			
    		</table>
    	</td>
    	<td style="width:65px; background-image:url(../templates/divers/header_centre.png); background-repeat:no-repeat;background-position:top left">
    		&nbsp;
    	</td>
    	<td style="text-align:right; background-image:url(../templates/divers/header_droite.png); background-repeat:repeat-x;" onMouseDown="return false;" onselectstart="return false;">
    		<a href="../module_tableau_bord/"  onMouseOver="bulle('<div style=\'max-width:250px;text-align:center\'>Actualit&eacute;s & nouveaux &eacute;l&eacute;ments<div>');" onMouseOut="bullefin();"  ><img src="../templates/module_tableau_bord/menu.png" class="icone_module"  /></a><a href="../module_forum/"  onMouseOver="bulle('<div style=\'max-width:250px;text-align:center\'>Forum<div>');" onMouseOut="bullefin();"  ><img src="../templates/module_forum/menu.png" class="icone_module"  /></a><a href="../module_contact/"  onMouseOver="bulle('<div style=\'max-width:250px;text-align:center\'>Annuaire de contacts<div>');" onMouseOut="bullefin();"  ><img src="../templates/module_contact/menu.png" class="icone_module"  /></a><a href="../module_darva/"  onMouseOver="bulle('<div style=\'max-width:250px;text-align:center\'>Statistiques Darva<div>');" onMouseOut="bullefin();"  ><img src="../templates/module_darva/menu.png" class="icone_module_select"  /></a>	</td>
    </tr></table>
    <hr style="visibility:hidden;height:60px;" />
    <script type="text/javascript" src="HtmlEditTable.js"></script>
    <script type="text/javascript">
    // Fonction pour l affichage de la page de saisie des statistiques nationales
    function affichage_statistiques_nationales (){
    	document.getElementById("arborescence_fichiers").style.display="none"; 
    	document.getElementById("statistiques_nationales").style.display="block";
    	document.getElementById("statistiques_cabinets").style.display="none";
    }
    function affichage_statistiques_cabinets (){
    	document.getElementById("arborescence_fichiers").style.display="none"; 
    	document.getElementById("statistiques_nationales").style.display="none";
    	document.getElementById("statistiques_cabinets").style.display="block";
    }
     
    // Fonction permettant de ne garder que des chifres 
    function lettre_interdite(pointeur)
    {
    	pointeur.value = pointeur.value.replace(/[^0-9]/g, '');
    }
     
    // Fonction de control des statistiques (par cabinet ou national)
    // Et lançant soit la génération de PDF soit enregistrant les données en base
    function formValid(IdDateDeb,IdDateFin){	
    	//*******************//
    	//* Initialisation *//
    	//*******************//
    	// Variables de parcour du tableau
    	var row;
    	var cell;
    	// Variables pour les années
    	var dateDeb=document.getElementById(IdDateDeb);
    	var dateFin=document.getElementById(IdDateFin);	
    	// Booléen de test des valeurs saisies
    	var succes=true;
     
    	if ((dateDeb!=null) && (dateFin!=null)){
     
    		// Dans le cas "National"
    		if (dateDeb.id=="annee_deb"){		
     
    			// Afin d_éviter le clique successifs		
    			document.getElementById('btValidNational').disabled=true;			
     
    			//**********************************//
    			//* On test si tous est bien saisi *//
    			//**********************************//
     
    			// Les dates
    			if ((succes==true) && (dateDeb.value=="")){ 
    				succes=false;				
    				alert("Renseigner les années concernées par ces statistiques");
    			}
    			if ((succes==true) && (dateFin.value=="")){
    				succes=false;
    				alert("Renseigner les années concernées par ces statistiques");
    			}			
    			if ((succes==true) && ((parseInt(dateDeb.value) >= parseInt(dateFin.value)) || ((parseInt(dateFin.value) - parseInt(dateDeb.value))!=1))){
    				succes=false;
    				alert("Les années saisies sont erronées");
    			}
     
    			// Test les données du table HTML et construction de tableau JS			
    			if (succes==true) {				
    				var table = document.getElementById("table_statistiques_nationales");				
    				// Parcour du tableau 
    				for (var i = 2; i < table.rows.length; i++) {
    				  row = table.rows[i];				 				  
    				  for (var j = 1; j < row.cells.length; j++) {
    				    cell = row.cells[j];				    				    
    				    //Test si la cellule est vide
    				    if (cell.innerHTML=="" || cell.innerHTML=="&nbsp;"){
    				    	succes=false;
    				      alert("Renseigner toutes les cellules du tableau");				    
    				    	break;				    				    	
    				    }		    
    				  }
    				  if (succes==false){
    				  	break;
    				  }
    				}
    			}
     
    			//*******************************//
    			//* Enregistrement des données *//
    			//*******************************//		
    			if (succes==true) {
    				element("formulaire_statistique_national").submit();				
    			}
    			document.getElementById('btValidNational').disabled=false;
    		}
    		// Dans le cas "Par cabinet"
    		else {
    			// Afin d_éviter le clique successifs
    			document.getElementById('btValidCabinet').disabled=true;	
     
    			//**********************************//
    			//* On test si tous est bien saisi *//
    			//**********************************//
     
    			// Les dates
    			if ((succes==true) && (dateDeb.value=="")){ 
    				succes=false;				
    				alert("Renseigner les années concernées par ces statistiques");
    			}
    			if ((succes==true) && (dateFin.value=="")){
    				succes=false;
    				alert("Renseigner les années concernées par ces statistiques");
    			}			
    			if ((succes==true) && ((parseInt(dateDeb.value) >= parseInt(dateFin.value)) || ((parseInt(dateFin.value) - parseInt(dateDeb.value))!=1))){
    				succes=false;
    				alert("Les années saisies sont erronées");
    			}
     
    			// Test les données du table HTML et construction de tableau JS			
    			if (succes==true) {				
    				var table = document.getElementById("table_statistiques_cabinets");				
    				// Parcour du tableau 
    				for (var i = 2; i < table.rows.length; i++) {
    				  row = table.rows[i];				 				  
    				  for (var j = 1; j < row.cells.length; j++) {
    				    cell = row.cells[j];				    				    
    				    // Test si la cellule est vide
    				    if (cell.innerHTML=="" || cell.innerHTML=="&nbsp;"){
    				    	succes=false;
    				      	alert("Renseigner toutes les cellules du tableau");				    
    				    	break;				    				    	
    				    }		    
    				  }
    				  if (succes==false){
    				  	break;
    				  }
    				}
    			}
    			//*********************//
    			//* Génération du PDF *//
    			//*********************//		
    			if (succes==true) {
    				alert("Génération du PDF");				
    			}
    			document.getElementById('btValidCabinet').disabled=false;
    		}
    	}
    }
     
    </script>
     
    <form method="POST" action="ajouter_statistiques_national.php" id="formulaire_statistique_national" enctype="multipart/form-data">
    	<table width="100%" cellspacing="10px" onMouseDown="return false;" onselectstart="return false;"><tr>
    		<td class="menu_td" id="menu_td_gauche">
    			<div class="content menu_block">
    				<script type="text/javascript">
    // Selection du dossier
    var tab_dossiers = new Array();
    function select_dossier(id_dossier, initialise)
    {
    	// change le style du dossier
    	for(var i=0; i< tab_dossiers.length; i++)	{ set_css("dossier_"+tab_dossiers[i]["id_dossier"],"lien"); }
    	set_css("dossier_"+id_dossier,"lien_select");
    	// Action spécifique (select_dossier_action) / Action par défaut
    	if(initialise==undefined) {
    		if("function"==typeof(select_dossier_action))	{ select_dossier_action(id_dossier); }
    		else											{ redir("/module_darva/index.php?id_dossier="+id_dossier); }
    	}
    }
     
    // Affichage/masquage des dossiers enfants
    function afficher_dossiers_enfants(id_dossier) {
    	for(var i=0; i< tab_dossiers.length; i++)
    	{
    		if(tab_dossiers[i]["id_dossier_parent"]==id_dossier)	afficher("div_dossier_"+tab_dossiers[i]["id_dossier"],true,"block");
    	}
    }
    </script>
     
     
    <div style="margin:0px;padding:0px;overflow-y:auto;max-height:500px;"><script type="text/javascript">tab_dossiers[0] = Array();tab_dossiers[0]["id_dossier"] = "1"; tab_dossiers[0]["id_dossier_parent"] = ""; </script><div id="div_dossier_1" style="padding:1px;cursor:pointer;0"><img src="../templates/divers/dossier_arborescence.png" onClick="select_dossier(1);" /><span id="dossier_1" onClick="select_dossier(1);" title="Dossier racine des statistiques du portail des experts"> Statistiques</span>&nbsp;
     
    <span onMouseOver="afficher_info_edit('196839fichier_dossier1','');" onMouseOut="afficher('196839fichier_dossier1',false);">
    	<div class="menu_flottant" style="width:auto" id="196839fichier_dossier1" onMouseDown="return false;" onselectstart="return false;">
    			<table width="100%" cellspacing="0px"><tr style=" color:#F77D19; cursor:help;"  onMouseOver="bulle('Acc&eacute;s en &eacute;criture : ajout, modification et suppression d\'elements et de sous-dossiers.');" onMouseOut="bullefin();"  ><td width="50px">&Eacute;criture : </td><td>Acc&eacute;s en &eacute;criture par d&eacute;faut</td><td style="width:25px;text-align:right;opacity:0.7"><img src="../templates/divers/info.png" /></td></tr></table><hr align="center" /><table><tr class="lien" onclick="popup('../divers/dossier_edit.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier=1');"><td style="width:25px;"><img src="../templates/divers/crayon.png" /></td><td>Modifier + Droits d'acc&eacute;s</td></tr></table><hr align="center" /><div style="text-align:center">2 dossier(s)<img src="../templates/divers/separateur.gif" />2 element(s)<img src="../templates/divers/separateur.gif" />4.28 Mo</div>	</div>
    	<img src="../templates/divers/options_small.png" />
    </span></div><script type="text/javascript">tab_dossiers[1] = Array();tab_dossiers[1]["id_dossier"] = "10"; tab_dossiers[1]["id_dossier_parent"] = "1"; </script><div id="div_dossier_10" style="padding:1px;cursor:pointer;0"><img src="../templates/divers/dependance_dossier.png" /><img src="../templates/divers/dossier_arborescence.png" onClick="select_dossier(10);" /><span id="dossier_10" onClick="select_dossier(10);" title=""> Darva</span>&nbsp;</div><script type="text/javascript">tab_dossiers[2] = Array();tab_dossiers[2]["id_dossier"] = "11"; tab_dossiers[2]["id_dossier_parent"] = "1"; </script><div id="div_dossier_11" style="padding:1px;cursor:pointer;0"><img src="../templates/divers/dependance_dossier.png" /><img src="../templates/divers/dossier_arborescence.png" onClick="select_dossier(11);" /><span id="dossier_11" onClick="select_dossier(11);" title=""> Par cabinet</span>&nbsp;</div></div><div class="lien" style="text-align:right;margin-top:5px"  onclick="popup('../divers/dossier_edit.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier_parent=1','ajouter');">Ajouter dossier &nbsp; <img src="../templates/divers/dossier_ajouter.png" /></div>
     
    <script type="text/javascript">  select_dossier(1, true);  </script>			</div>
    			<div class="content menu_block">
    				<div onclick="popup('ajouter_fichiers.php?id_dossier=1');" class="menu_ligne"><img src="../templates/module_darva/ajouter_fichiers.png" /> &nbsp; D&eacute;poser des statistiques Darva</div><hr /><div onclick="affichage_statistiques_nationales();" class="menu_ligne"><img src="../templates/module_darva/statistiques_nationales.png" /> &nbsp; Saisir des statistiques nationales</div><hr /><div onclick="affichage_statistiques_cabinets();" class="menu_ligne"><img src="../templates/module_darva/statistiques_cabinets.png" /> &nbsp; Saisir des statistiques par cabinet</div><hr /><div class="menu_ligne" onClick="if(nb_elements_select(false,'fichier-')==0) selection_tous_elements(true,'fichier-');  redir('creer_archive.php?elements='+elements_url());"><img src="../templates/module_darva/telecharger_fichiers.png" /> T&eacute;l&eacute;charger les fichiers</div><div class="menu_ligne" onMouseOver="afficher('menu_affichage',true);" onMouseOut="afficher('menu_affichage',false);" onMouseDown="return false;" onselectstart="return false;"><div class="menu_flottant" id="menu_affichage"><a href="/module_darva/index.php?id_dossier=1&type_affichage=bloc" class="lien"><img src="../templates/divers/affichage_bloc.png" style="margin-bottom:5px;" /> &nbsp; Bloc</a><br /><a href="/module_darva/index.php?id_dossier=1&type_affichage=liste" class="lien_select"><img src="../templates/divers/affichage_liste.png" /> &nbsp; Liste</a></div><img src="../templates/divers/affichage_liste.png" /> &nbsp; Affichage</div><div class="menu_ligne" onMouseOver="afficher('menu_tri',true);" onMouseOut="afficher('menu_tri',false);" onMouseDown="return false;" onselectstart="return false;"><div class="menu_flottant" id="menu_tri"><a href="/module_darva/index.php?id_dossier=1&tri=nom@@asc" class="lien_select">nom &nbsp;<img src="../templates/divers/tri_asc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=nom@@desc" class="lien">nom &nbsp;<img src="../templates/divers/tri_desc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=date@@desc" class="lien">date de cr&eacute;ation &nbsp;<img src="../templates/divers/tri_desc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=date@@asc" class="lien">date de cr&eacute;ation &nbsp;<img src="../templates/divers/tri_asc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=id_utilisateur@@asc" class="lien">auteur &nbsp;<img src="../templates/divers/tri_asc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=id_utilisateur@@desc" class="lien">auteur &nbsp;<img src="../templates/divers/tri_desc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=extension@@asc" class="lien">type de fichier &nbsp;<img src="../templates/divers/tri_asc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=extension@@desc" class="lien">type de fichier &nbsp;<img src="../templates/divers/tri_desc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=taille_octet@@asc" class="lien">taille &nbsp;<img src="../templates/divers/tri_asc.png" /></a><br /><a href="/module_darva/index.php?id_dossier=1&tri=taille_octet@@desc" class="lien">taille &nbsp;<img src="../templates/divers/tri_desc.png" /></a><br /></div><img src="../templates/divers/tri.png" /> &nbsp;Tri&eacute; par &nbsp;nom &nbsp; <img src="../templates/divers/tri_asc.png" /></div><script type="text/javascript">
    ////	NB ELEMENTS SELECTIONNES
    ////	type_element => si on ne souhaite qu'un certain type d'element
    function nb_elements_select(alerte, type_element)
    {
    	tab_elements = document.getElementsByName("elements[]");
    	var nb_elements_select = 0;
    	for(var i=0; i< tab_elements.length; i++)
    	{
    		if(tab_elements[i].checked==true  &&  (type_element==undefined || tab_elements[i].value.substring(0,type_element.length)==type_element))	nb_elements_select++;
    	}
    	if(nb_elements_select==0 && alerte==true)	alert("Aucun &eacute;l&eacute;ment n'a &eacute;t&eacute; s&eacute;lectionn&eacute;");
    	return nb_elements_select;
    }
     
     
    ////	PREPARATION URL
    ////
    function elements_url()
    {
    	element_url = "";
    	tab_elements = document.getElementsByName("elements[]");
    	for(var i=0; i< tab_elements.length; i++)		{  if(tab_elements[i].checked==true)  element_url += tab_elements[i].value+"@@";  }
    	return element_url;
    }
     
     
    ////	SÉLECTION / DÉSELECTION ÉLEMENT
    ////	selectionner => selection/deselection/bascule
    function selection_element(id_elem, selectionner, pas_aff_menu)
    {
    	checkbox_element = element("checkbox_element_"+id_elem);
    	if (selectionner==true ||  (selectionner==null && checkbox_element.checked==false))			{ checkbox_element.checked = true;   element("div_element_"+id_elem).className = "div_element_select"; }
    	else if (selectionner==false ||  (selectionner==null && checkbox_element.checked==true))	{ checkbox_element.checked = false;  element("div_element_"+id_elem).className = "div_element_deselect"; }
    	// Affiche le menu complet ?
    	if(element("menu_elements_bis") && pas_aff_menu!=true) {
    		if(nb_elements_select()>0 && element('menu_elements_bis').style.display=="none")	{ afficher_dynamic('menu_elements_bis', null, true); }
    		else if(nb_elements_select()==0)													{ afficher_dynamic('menu_elements_bis', null, false); }
    	}
    }
     
     
    ////	SELECTION / DESELECTION DE TOUS LES ELEMENTS
    ////	selectionner => selection/deselection/bascule   type_element => si on ne souhaite qu'un certain type d'element
    function selection_tous_elements(selectionner, type_element)
    {
    	////	Init
    	if(selectionner==undefined)  selectionner = "bascule";
    	tab_elements = document.getElementsByName("elements[]");
    	nb_selections = 0;
    	////	On lance la sélection/déselection (filtre un type d'element si besoin)
    	for(var i=0; i< document.getElementsByName("elements[]").length; i++)
    	{
    		if(type_element==undefined || tab_elements[i].value.substring(0,type_element.length)==type_element) {
    			id_elem = i + 1;
    			if(selectionner==true || (selectionner=="bascule" && element("checkbox_element_"+id_elem).checked==false))	{ select = true;  nb_selections ++; }
    			else																										{ select = false; }
    			selection_element(id_elem, select, true);
    		}
    	}
    	if(nb_selections>0)		{ afficher_dynamic('menu_elements_bis', null, true); }
    	else					{ afficher_dynamic('menu_elements_bis', null, false); }
    }
     
     
    ////	SUPPRIMER LES ÉLEMENTS SÉLECTIONNÉS
    ////
    function supprimer_elements()
    {
    	if(nb_elements_select(true) > 0  &&  confirm("Confirmez-vous la suppression ? (x"+nb_elements_select()+")")==true)
    		redir("elements_suppr.php?elements="+elements_url()+"&id_dossier_retour=1");
    }
    </script>
     
     
     
    <div class="menu_ligne" onClick="selection_tous_elements('bascule','fichier-');" title="inverser la s&eacute;lection"><img src="../templates/divers/elements_menu.png" /> &nbsp; S&eacute;lectionner / D&eacute;selectionner</div><div id="menu_elements_bis" style="display:none"><div class="menu_ligne" style="padding-left:20px;" onClick="if(nb_elements_select(true)>0) popup('../divers/deplacer.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier_parent=1&elements='+elements_url(),'deplacer');"><img src="../templates/divers/dossier_deplacer.png" /> &nbsp; D&eacute;placer dans un autre dossier</div><div class="menu_ligne" style="padding-left:20px;" onClick="supprimer_elements();"><img src="../templates/divers/supprimer.png" /> &nbsp; Supprimer les &eacute;l&eacute;ments</div></div>			</div>
    		</td>
    		<td id="arborescence_fichiers">
    			<div class="div_menu_horizontal" onMouseDown="return false;" onselectstart="return false;">&nbsp;<a href="index.php?id_dossier=1" class="lien"><img src="../templates/divers/dossier_arborescence.png" />&nbsp;Statistiques</a>&nbsp;&nbsp;</div><hr style="clear:both;visibility:hidden;" /><div class="div_element_deselect" style="width:100%;height:40px;cursor: url('../templates/divers/elements_selectionner.png'),crosshair;" id="div_element_1" onClick="selection_element('1');"><input type="checkbox" name="elements[]" id="checkbox_element_1" value="fichier_dossier-10" style="display:none;" /><div class="div_element_options">
     
    <span onMouseOver="afficher_info_edit('300873fichier_dossier10','');" onMouseOut="afficher('300873fichier_dossier10',false);">
    	<div class="menu_flottant" style="width:auto" id="300873fichier_dossier10" onMouseDown="return false;" onselectstart="return false;">
    			<table width="100%" cellspacing="0px"><tr style=" color:#F77D19; cursor:help;"  onMouseOver="bulle('Acc&eacute;s en &eacute;criture : ajout, modification et suppression d\'elements et de sous-dossiers.<br /><br />Seul l\'auteur et les administrateurs peuvent modifier les droits d\'acc&eacute;s.');" onMouseOut="bullefin();"  ><td width="50px">&Eacute;criture : </td><td>Portail des experts<br />Christophe Marraillac, Ferreira Frederic</td><td style="width:25px;text-align:right;opacity:0.7"><img src="../templates/divers/info.png" /></td></tr></table><hr align="center" /><table><tr class="lien" onclick="popup('../divers/dossier_edit.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier=10');"><td style="width:25px;"><img src="../templates/divers/crayon.png" /></td><td>Modifier + Droits d'acc&eacute;s</td></tr></table><table><tr class="lien" onclick="popup('../divers/deplacer.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier_parent=1&elements=fichier_dossier-10');"><td style="width:25px;"><img src="../templates/divers/dossier_deplacer.png" /></td><td>D&eacute;placer dans un autre dossier</td></tr></table><table><tr class="lien" onclick="confirmer('Confirmer la suppression du dossier et toutes les donn&eacute;es qu\'il contient ? &nbsp; Attention! certains sous-dossiers ne vous sont peut-&eacute;tre pas accessibles : ils seront &eacute;galement effac&eacute;s !! ','elements_suppr.php?id_dossier=10&id_dossier_retour=1');"><td style="width:25px;"><img src="../templates/divers/supprimer.png" /></td><td>Supprimer</td></tr></table><hr align="center" /><div style="text-align:center">Auteur :  Christophe Marraillac <br />Cr&eacute;&eacute; jeudi 20/08/2009 &Eacute; 16:20</div><hr align="center" /><div style="text-align:center">2 element(s)<img src="../templates/divers/separateur.gif" />4.21 Mo</div>	</div>
    	<img src="../templates/divers/options.png" />
    </span></div><div class="div_element_contenu" ><table class="div_element_table"><tr><td class="div_element_td" style="width:70px"><img src="../templates/divers/dossier.png"  class="lien" onClick="redir('/module_darva/index.php?id_dossier=10');"  style="position:absolute;margin-top:-20px;" /></td><td class="div_element_td lien"  class="lien" onClick="redir('/module_darva/index.php?id_dossier=10');" >Darva</td><td class="div_element_td" align="right">2 element(s)<img src="../templates/divers/separateur.gif" />4.21 Mo <img src="../templates/divers/separateur.gif" /> Christophe Marraillac <img src="../templates/divers/separateur.gif" /> 20/08/2009</td></tr></table></div></div><div class="div_element_deselect" style="width:100%;height:40px;cursor: url('../templates/divers/elements_selectionner.png'),crosshair;" id="div_element_2" onClick="selection_element('2');"><input type="checkbox" name="elements[]" id="checkbox_element_2" value="fichier_dossier-11" style="display:none;" /><div class="div_element_options">
     
    <span onMouseOver="afficher_info_edit('1fichier_dossier11','');" onMouseOut="afficher('1fichier_dossier11',false);">
    	<div class="menu_flottant" style="width:auto" id="1fichier_dossier11" onMouseDown="return false;" onselectstart="return false;">
    			<table width="100%" cellspacing="0px"><tr style=" color:#F77D19; cursor:help;"  onMouseOver="bulle('Acc&eacute;s en &eacute;criture : ajout, modification et suppression d\'elements et de sous-dossiers.<br /><br />Seul l\'auteur et les administrateurs peuvent modifier les droits d\'acc&eacute;s.');" onMouseOut="bullefin();"  ><td width="50px">&Eacute;criture : </td><td>Portail des experts<br />Christophe Marraillac, Ferreira Frederic</td><td style="width:25px;text-align:right;opacity:0.7"><img src="../templates/divers/info.png" /></td></tr></table><hr align="center" /><table><tr class="lien" onclick="popup('../divers/dossier_edit.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier=11');"><td style="width:25px;"><img src="../templates/divers/crayon.png" /></td><td>Modifier + Droits d'acc&eacute;s</td></tr></table><table><tr class="lien" onclick="popup('../divers/deplacer.php?module_dossier=module_darva&type_objet_dossier=fichier_dossier&id_dossier_parent=1&elements=fichier_dossier-11');"><td style="width:25px;"><img src="../templates/divers/dossier_deplacer.png" /></td><td>D&eacute;placer dans un autre dossier</td></tr></table><table><tr class="lien" onclick="confirmer('Confirmer la suppression du dossier et toutes les donn&eacute;es qu\'il contient ? &nbsp; Attention! certains sous-dossiers ne vous sont peut-&eacute;tre pas accessibles : ils seront &eacute;galement effac&eacute;s !! ','elements_suppr.php?id_dossier=11&id_dossier_retour=1');"><td style="width:25px;"><img src="../templates/divers/supprimer.png" /></td><td>Supprimer</td></tr></table><hr align="center" /><div style="text-align:center">Auteur :  Christophe Marraillac <br />Cr&eacute;&eacute; jeudi 20/08/2009 &Eacute; 16:21</div><hr align="center" /><div style="text-align:center">0 element(s)<img src="../templates/divers/separateur.gif" />65 Ko</div>	</div>
    	<img src="../templates/divers/options.png" />
    </span></div><div class="div_element_contenu" ><table class="div_element_table"><tr><td class="div_element_td" style="width:70px"><img src="../templates/divers/dossier.png"  class="lien" onClick="redir('/module_darva/index.php?id_dossier=11');"  style="position:absolute;margin-top:-20px;" /></td><td class="div_element_td lien"  class="lien" onClick="redir('/module_darva/index.php?id_dossier=11');" >Par cabinet</td><td class="div_element_td" align="right">0 element(s)<img src="../templates/divers/separateur.gif" />65 Ko <img src="../templates/divers/separateur.gif" /> Christophe Marraillac <img src="../templates/divers/separateur.gif" /> 20/08/2009</td></tr></table></div></div>		</td>
    		<td id="statistiques_nationales" style="display:none">
    			<div class="div_menu_horizontal">
    				<a class="lien"><img src="../templates/divers/dossier_arborescence.png" />&nbsp;Statistiques nationales</a>&nbsp;&nbsp;			</div>
    			<hr style="clear:both;visibility:hidden;" />
    			<div class="div_element_page">		
    				<div>Statistiques nationales de juillet&nbsp;
    					<input type="text" name="annee_deb" id="annee_deb" maxlength="4" style="width:60px; text-align:center;" onClick="document.getElementById('annee_deb').focus();" onChange="lettre_interdite(this);"/>&nbsp;&agrave;&nbsp;		
    					<input type="text" name="annee_fin" id="annee_fin" maxlength="4" style="width:60px; text-align:center;" onClick="document.getElementById('annee_fin').focus();" onChange="lettre_interdite(this);"/>
    				</div>		
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    				<div>
    					<table id="table_statistiques_nationales" class="div_element_table_stat" >					
    						<tr>
    							<td></td>
    							<td colspan=2>Nb de rapport sans doublons</td>
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. r&eacute;parables</td>         
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. non r&eacute;parables</td> 
    							<td colspan=2>Co&ucirc;t moyen HT r&eacute;parations</td>         
    							<td colspan=2>Nb d'heures</td>
    							<td colspan=2>Co&ucirc;t des pi&egrave;ces</td>
    						</tr>
    						<tr>
    							<td></td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>     
    						</tr> 
    						<tr>         
    							<td>National VP</td>
    							<td id="VP_doublon_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_doublon_N" value="true" />
    							<td id="VP_doublon_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_doublon_N-1" value="true" />
    							<td id="VP_delai_veh_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_reparable_N" value="true" />
    							<td id="VP_delai_veh_reparable_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_reparable_N-1" value="true" />
    							<td id="VP_delai_veh_non_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_non_reparable_N" value="true" />
    							<td id="VP_delai_veh_non_reparable_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_non_reparable_N-1" value="true" />						     
    							<td id="VP_cout_reparation_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_reparation_N" value="true" />
    							<td id="VP_cout_reparation_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_reparation_N-1" value="true" />
    							<td id="VP_nb_heure_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_nb_heure_N" value="true" />
    							<td id="VP_nb_heure_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_nb_heure_N-1" value="true" />
    							<td id="VP_cout_piece_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_piece_N" value="true" />
    							<td id="VP_cout_piece_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_piece_N-1" value="true" />
    						</tr>     
    						<tr>         
    							<td>National CTTE</td>
    							<td id="CTTE_doublon_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_doublon_N" value="true" />
    							<td id="CTTE_doublon_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_doublon_N-1" value="true" />
    							<td id="CTTE_delai_veh_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_reparable_N" value="true" />
    							<td id="CTTE_delai_veh_reparable_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_reparable_N-1" value="true" />
    							<td id="CTTE_delai_veh_non_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_non_reparable_N" value="true" />
    							<td id="CTTE_delai_veh_non_reparable_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_non_reparable_N-1" value="true" />						     
    							<td id="CTTE_cout_reparation_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_reparation_N" value="true" />
    							<td id="CTTE_cout_reparation_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_reparation_N-1" value="true" />
    							<td id="CTTE_nb_heure_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_nb_heure_N" value="true" />
    							<td id="CTTE_nb_heure_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_nb_heure_N-1" value="true" />
    							<td id="CTTE_cout_piece_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_piece_N" value="true" />
    							<td id="CTTE_cout_piece_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_piece_N-1" value="true" />
    						</tr> 
    						<tr>         
    							<td>National Autres</td>
    							<td id="doublon_N">&nbsp;</td>
    							<input type="hidden" id="Input_doublon_N" value="true" />
    							<td id="doublon_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_doublon_N-1" value="true" />
    							<td id="delai_veh_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_reparable_N" value="true" />
    							<td id="delai_veh_reparable_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_reparable_N-1" value="true" />
    							<td id="delai_veh_non_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_non_reparable_N" value="true" />
    							<td id="delai_veh_non_reparable_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_non_reparable_N-1" value="true" />						     
    							<td id="cout_reparation_N">&nbsp;</td>
    							<input type="hidden" id="Input_cout_reparation_N" value="true" />
    							<td id="cout_reparation_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_cout_reparation_N-1" value="true" />
    							<td id="nb_heure_N">&nbsp;</td>
    							<input type="hidden" id="Input_nb_heure_N" value="true" />
    							<td id="nb_heure_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_nb_heure_N-1" value="true" />
    							<td id="cout_piece_N">&nbsp;</td>
    							<input type="hidden" id="Input_cout_piece_N" value="true" />
    							<td id="cout_piece_N-1">&nbsp;</td>
    							<input type="hidden" id="Input_cout_piece_N-1" value="true" />     
    						</tr>
    					</table>
    					<script>
    						var tableHTML = document.getElementById("table_statistiques_nationales");
    						var tableEdit = new HtmlEditTable({"table": tableHTML});
    					</script>	
    				</div>
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />								
    				<input type="button" id="btValidNational" value="Enregistrer" onclick="formValid('annee_deb','annee_fin')" class="button" />
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    			</div>	
    		</td>
    		<td id="statistiques_cabinets" style="display:none">
    			<div class="div_menu_horizontal">
    				<a class="lien"><img src="../templates/divers/dossier_arborescence.png" />&nbsp;Statistiques par cabinet</a>&nbsp;&nbsp;				<div class="div_element_contenu" >
    				</div>
    			</div>		
    			<hr style="clear:both;visibility:hidden;" />
    			<div class="div_element_page">		
    				<div>Statistiques du cabinet&nbsp;
    					<input type="text" id="nom_cabinet" style="width:250px" onClick="document.getElementById('nom_cabinet').focus();"/>&nbsp;de juillet&nbsp;
    					<SELECT id="annee_deb_select" size="1" style="width:80px"><OPTION>----<OPTION>2005<OPTION>2006<OPTION>2007<OPTION>2008<OPTION>2009</SELECT>&nbsp;&agrave;&nbsp;		
    					<SELECT id="annee_fin_select" size="1" style="width:80px"><OPTION>----<OPTION>2005<OPTION>2006<OPTION>2007<OPTION>2008<OPTION>2009</SELECT>
    				</div>		
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    				<div>
    					<table id="table_statistiques_cabinets" class="div_element_table_stat" >					
    						<tr>
    							<td></td>
    							<td colspan=2>Nb de rapport sans doublons</td>
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. r&eacute;parables</td>         
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. non r&eacute;parables</td> 
    							<td colspan=2>Co&ucirc;t moyen HT r&eacute;parations</td>         
    							<td colspan=2>Nb d'heures</td>
    							<td colspan=2>Co&ucirc;t des pi&egrave;ces</td>
    						</tr>
    						<tr>
    							<td></td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>     
    						</tr> 
    						<tr>         
    							<td>VP</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>						     
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>							
    							<td>&nbsp;</td>							
    						</tr>     
    						<tr>         
    							<td>CTTE</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>						     
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    						</tr> 
    						<tr>         
    							<td>Autres</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>						     
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>     
    						</tr>
    					</table>
    					<script>
    						var tableHTML = document.getElementById("table_statistiques_cabinets");
    						var tableEdit = new HtmlEditTable({"table": tableHTML});
    					</script>									
    				</div>
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />								
    				<input type="button" id="btValidCabinet" value="G&eacute;n&eacute;rer" onclick="formValid('annee_deb_select','annee_fin_select')" class="button" />
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    			</div>	
    		</td>
    		</td>
    	</tr></table>
    </form>
     
     
     
    </body>
    </html>
    Quelqu'un sait-il pourquoi ?

    2 - J'ai également une autre question subsidiaire du à mon niveau de base en CSS Lorsque je personnalise la class "HtmlEdit" (input de l'exemple) rien ne se passe car une classe par défaut pour les input text est déjà défini et on dirai qu'elle passe avant tout ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    input[type=text], input[type=password], input[type=file], textarea,	{ background-color:#eee; border: #999 1px solid; font-size:11px; font-family:Arial,Helvetica,sans-serif; font-weight:normal; color:#000; }	/* champs texte ou textarea */
    input[type=text]:focus, input[type=password]:focus, textarea:focus, { background-color:#fff; border: #ccc 1px solid; }
    Comment puis je contourner le problème.....


    Merci d'avance.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Méa le problème venait en fait de ma CSS.....

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Salut
    Merci pour l'appréciation

    Tu as résolu le 2è problème, mais pas le 1er ?
    Peux-tu nous donner une page HTML simple où tu reproduis le problème ?
    (genre en supprimant tout ce qui n'est pas HtmlEditTable de ta page pour pouvoir tester)

  6. #6
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    la voici :

    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
    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
     
    <?php
    ////	INITIALISATION
    ////
    include "commun.inc.php";
    include path_includes."header_menu.inc.php";
    init_resolution_elements("170px","90px");
     
    $cpt_element = 0;
    if(empty($_GET["id_dossier"]))  $_GET["id_dossier"] = 1;
     
     
    ////	CONTROLES AUTO (ADMIN GE)
    ////
    if($_SESSION["user"]["admin_general"]==1 and $_GET["id_dossier"]==1) {
    	nettoyer_tmp();
    	if(is_dir(path_gest_fichier)==false)	mkdir(path_gest_fichier, 0775);
    }
     
     
    ////	ALERTE SI DOSSIER INACCESSIBLE ECRITURE
    ////
    $droit_acces_dossier = droit_acces($objet["fichier_dossier"],$_GET["id_dossier"],"controle_1");
    $chemin_dossier_courant = path_gest_fichier.chemin($objet["fichier_dossier"],$_GET["id_dossier"]);
    if(!is_writable(path_stock_fichiers) and $_SESSION["user"]["admin_general"]==1)		{ alert($trad["erreur"]["chmod_stock_fichiers"]); }
    elseif(!is_writable($chemin_dossier_courant) and  $droit_acces_dossier>1)			{ alert($trad["darva"]["ajouter_fichier_alert"]." (id=".$_GET["id_dossier"].")"); }
     
     
    ////	LISTE DES FICHIERS + DIAPORAMA
    ////
    $liste_fichiers = db_tableau("SELECT * FROM gt_fichier WHERE id_dossier='".$_GET["id_dossier"]."' ".(($_GET["id_dossier"]==1)?sql_affichage($objet["fichier"]):"")."  ".tri_sql($config["tri_fichier"])." ");
    $_SESSION["cfg_espace"]["scroller_images"] = array();
    foreach($liste_fichiers as $fichier_tmp)	{ if(controle_fichier($fichier_tmp["nom"],"image_browser")==1)  $_SESSION["cfg_espace"]["scroller_images"][] = $fichier_tmp; }
    $nb_img = count($_SESSION["cfg_espace"]["scroller_images"]);
    $_SESSION["cfg_espace"]["vignettes_xml"] = path_tmp."vignettes_dossier_".$_GET["id_dossier"].".xml";
    ?>
     
    <script type="text/javascript" src="HtmlEditTable.js"></script>
    <script type="text/javascript">
    // Fonction pour l affichage de la page de saisie des statistiques nationales
    function affichage_statistiques_nationales (){
    	document.getElementById("arborescence_fichiers").style.display="none"; 
    	document.getElementById("statistiques_nationales").style.display="block";
    	document.getElementById("statistiques_cabinets").style.display="none";
    }
    function affichage_statistiques_cabinets (){
    	document.getElementById("arborescence_fichiers").style.display="none"; 
    	document.getElementById("statistiques_nationales").style.display="none";
    	document.getElementById("statistiques_cabinets").style.display="block";
    }
     
    // Fonction permettant de ne garder que des chifres
    function onlyNumbers(e)
    {
    	var keynum;
    	var keychar;
    	var numcheck;
     
    	if(window.event) // IE
    	{
    		keynum = e.keyCode;
    	}
    	else if(e.which) // Netscape/Firefox/Opera
    	{
    		keynum = e.which;
    	}
    	keychar = String.fromCharCode(keynum);	
    	numcheck = /\d/;
    	return numcheck.test(keychar);
    }
     
    // Fonction de control des statistiques (par cabinet ou national)
    // Et lançant soit la génération de PDF soit enregistrant les données en base
    function formValid(IdDateDeb,IdDateFin){	
    	//*******************//
    	//* Initialisation *//
    	//*******************//
    	// Variables de parcour du tableau
    	var row;
    	var cell;
    	// Variables pour les années
    	var dateDeb=document.getElementById(IdDateDeb);
    	var dateFin=document.getElementById(IdDateFin);	
    	// Booléen de test des valeurs saisies
    	var succes=true;
     
    	if ((dateDeb!=null) && (dateFin!=null)){
     
    		// Dans le cas "National"
    		if (dateDeb.id=="annee_deb"){		
     
    			// Afin d_éviter le clique successifs		
    			document.getElementById('btValidNational').disabled=true;			
     
    			//**********************************//
    			//* On test si tous est bien saisi *//
    			//**********************************//
     
    			// Les dates
    			if ((succes==true) && (dateDeb.value=="")){ 
    				succes=false;				
    				alert("<?php echo $trad["darva"]["annee_empty"]; ?>");
    			}
    			if ((succes==true) && (dateFin.value=="")){
    				succes=false;
    				alert("<?php echo $trad["darva"]["annee_empty"]; ?>");
    			}			
    			if ((succes==true) && ((parseInt(dateDeb.value) >= parseInt(dateFin.value)) || ((parseInt(dateFin.value) - parseInt(dateDeb.value))!=1))){
    				succes=false;
    				alert("<?php echo $trad["darva"]["annee_erronee"]; ?>");
    			}
     
    			// Test les données du table HTML et construction de tableau JS			
    			if (succes==true) {				
    				var table = document.getElementById("table_statistiques_nationales");				
    				// Parcour du tableau 
    				for (var i = 2; i < table.rows.length; i++) {
    				  row = table.rows[i];				 				  
    				  for (var j = 1; j < row.cells.length; j++) {
    				    cell = row.cells[j];				    				    
    				    //Test si la cellule est vide
    				    if (cell.innerHTML=="" || cell.innerHTML=="&nbsp;"){
    				    	//succes=false;
    				    	//alert("<?php echo $trad["darva"]["table_empty"]; ?>");				    
    				    	//break;				    				    	
    				    }		    
    				  }
    				  if (succes==false){
    				  	break;
    				  }
    				}
    			}
     
    			//*******************************//
    			//* Enregistrement des données *//
    			//*******************************//		
    			if (succes==true) {
    				element("formulaire_statistique_national").submit();				
    			}
    			document.getElementById('btValidNational').disabled=false;
    		}
    		// Dans le cas "Par cabinet"
    		else {
    			// Afin d_éviter le clique successifs
    			document.getElementById('btValidCabinet').disabled=true;	
     
    			//**********************************//
    			//* On test si tous est bien saisi *//
    			//**********************************//
     
    			// Les dates
    			if ((succes==true) && (dateDeb.value=="")){ 
    				succes=false;				
    				alert("<?php echo $trad["darva"]["annee_empty"]; ?>");
    			}
    			if ((succes==true) && (dateFin.value=="")){
    				succes=false;
    				alert("<?php echo $trad["darva"]["annee_empty"]; ?>");
    			}			
    			if ((succes==true) && ((parseInt(dateDeb.value) >= parseInt(dateFin.value)) || ((parseInt(dateFin.value) - parseInt(dateDeb.value))!=1))){
    				succes=false;
    				alert("<?php echo $trad["darva"]["annee_erronee"]; ?>");
    			}
     
    			// Test les données du table HTML et construction de tableau JS			
    			if (succes==true) {				
    				var table = document.getElementById("table_statistiques_cabinets");				
    				// Parcour du tableau 
    				for (var i = 2; i < table.rows.length; i++) {
    				  row = table.rows[i];				 				  
    				  for (var j = 1; j < row.cells.length; j++) {
    				    cell = row.cells[j];				    				    
    				    // Test si la cellule est vide
    				    if (cell.innerHTML=="" || cell.innerHTML=="&nbsp;"){
    				    	succes=false;
    				      	alert("<?php echo $trad["darva"]["table_empty"]; ?>");				    
    				    	break;				    				    	
    				    }		    
    				  }
    				  if (succes==false){
    				  	break;
    				  }
    				}
    			}
    			//*********************//
    			//* Génération du PDF *//
    			//*********************//		
    			if (succes==true) {
    				alert("Génération du PDF");				
    			}
    			document.getElementById('btValidCabinet').disabled=false;
    		}
    	}
    }
     
    </script>
     
    <form method="POST" action="ajouter_statistiques_national.php" id="formulaire_statistique_national" enctype="multipart/form-data">
    	<table width="100%" cellspacing="10px" onMouseDown="return false;" onselectstart="return false;"><tr>
    		<td class="menu_td" id="menu_td_gauche">
    			<div class="content menu_block">
    				<?php
                                    ////    MENU D'ARBORESCENCE
                                    $cfg_menu_arbo = array("objet"=>$objet["fichier_dossier"], "id_objet"=>$_GET["id_dossier"], "ajouter_dossier"=>"oui", "droit_acces_dossier"=>$droit_acces_dossier, "objet_enfant"=>$objet["fichier"]);                  
                                    include_once path_includes."menu_arborescence.inc.php";
                                    ?>
                            </div>
                            <div class="content menu_block">
                                    <?php
                                    ////    AJOUTER FICHIER
                                    if($droit_acces_dossier>=1.5)  echo "<div onclick=\"popup('ajouter_fichiers.php?id_dossier=".$_GET["id_dossier"]."');\" class=\"menu_ligne\"><img src=\"".path_templates."module_darva/ajouter_fichiers.png\" /> &nbsp; ".$trad["darva"]["ajouter_fichier"]."</div><hr />";
                                    ////    SAISIR LES STATISTIQUES NATIONALES
                                    if($droit_acces_dossier>=1.5)  echo "<div onclick=\"affichage_statistiques_nationales();\" class=\"menu_ligne\"><img src=\"".path_templates."module_darva/statistiques_nationales.png\" /> &nbsp; ".$trad["darva"]["statistiques_nationales"]."</div><hr />";
                                    ////    SAISIR LES STATISTIQUES PAR CABINET
                                    if($droit_acces_dossier>=1.5)  echo "<div onclick=\"affichage_statistiques_cabinets();\" class=\"menu_ligne\"><img src=\"".path_templates."module_darva/statistiques_cabinets.png\" /> &nbsp; ".$trad["darva"]["statistiques_cabinets"]."</div><hr />";
                                    ////    LANCER DIAPORAMA
                                    if($nb_img>1)   echo "<div class=\"menu_ligne\" onclick=\"afficher_images('".$_SESSION["cfg_espace"]["scroller_images"][0]["id_fichier"]."',true);\"><img src=\"".path_templates."module_darva/diaporama.png\" height=\"26px\" /> ".$trad["darva"]["voir_images"]."</div>";
                                    ////    TELECHARGER LES FICHIERS
                                    echo "<div class=\"menu_ligne\" onClick=\"if(nb_elements_select(false,'fichier-')==0) selection_tous_elements(true,'fichier-');  redir('creer_archive.php?elements='+elements_url());\"><img src=\"".path_templates."module_darva/telecharger_fichiers.png\" /> ".$trad["darva"]["telecharger_fichiers"]."</div>";
                                    ////    MENU D'AFFICHAGE & DE TRI
                                    echo menu_affichage();
                                    echo menu_tri($config["tri_fichier"]);
                                    ////    MENU ELEMENTS
                                    $cfg_menu_elements = array("objet"=>$objet["fichier"], "objet_dossier"=>$objet["fichier_dossier"], "id_objet_dossier"=>$_GET["id_dossier"], "droit_acces_dossier"=>$droit_acces_dossier);
                                    include path_includes."menu_elements.inc.php";
                                    ?>
    			</div>
    		</td>
    		<td id="arborescence_fichiers">
    			<?php
    			////	MENU CHEMIN + OBJETS_DOSSIERS + TAILLE ICONES
    			////
    			echo menu_chemin($objet["fichier_dossier"], $_GET["id_dossier"]);
    			$cfg_dossiers = array("objet"=>$objet["fichier_dossier"], "id_objet"=>$_GET["id_dossier"], "objet_enfant"=>$objet["fichier"]);
    			include_once path_includes."dossiers.inc.php";
    			$icone_max_height = ($_REQUEST["type_affichage"]=="bloc") ? "110" : "30";
    			$icone_max_width  = ($_REQUEST["type_affichage"]=="bloc") ? "180" : "70";
     
    			////	AFFICHAGE DES FICHIERS
    			////
    			foreach($liste_fichiers as $fichier_tmp)
    			{
    				////	INIT
    				$cpt_element++;
    				$nb_versions = db_valeur("SELECT count(*) FROM gt_fichier_version WHERE id_fichier='".$fichier_tmp["id_fichier"]."' ");
    				////	INFOS / MODIF / SUPPR
    				$cfg_menu_elem = array("objet"=>$objet["fichier"], "id_objet"=>$fichier_tmp["id_fichier"], "date"=>$fichier_tmp["date"]);
    				$fichier_tmp["droit_acces"] = ($_GET["id_dossier"]==1) ? droit_acces($objet["fichier"],$fichier_tmp["id_fichier"]) : $droit_acces_dossier;
    				if($fichier_tmp["droit_acces"]>=2) {
    					$cfg_menu_elem["modif"] = "fichier_edit.php?id_fichier=".$fichier_tmp["id_fichier"];
    					$cfg_menu_elem["deplacer"] = path_divers."deplacer.php?module_dossier=".module_dossier."&type_objet_dossier=fichier_dossier&id_dossier_parent=".$_GET["id_dossier"]."&elements=fichier-".$fichier_tmp["id_fichier"];
    					$cfg_menu_elem["suppr"] = "elements_suppr.php?id_fichier=".$fichier_tmp["id_fichier"]."&id_dossier_retour=".$_GET["id_dossier"];
    				}
    				$cfg_menu_elem["options_divers"][] = array("icone_src"=>path_templates."module_darva/ajouter_fichiers.png", "text"=>$trad["darva"]["ajouter_versions_fichier"], "action_js"=>"popup('ajouter_fichiers.php?id_dossier=".$_GET["id_dossier"]."&id_fichier_version=".$fichier_tmp["id_fichier"]."');");
    				////	TAILLE OCTETS  +  RESOLUTION IMAGE
    				$fichier_tmp["afficher_taille"] = afficher_taille($fichier_tmp["taille_octet"]);
    				if(controle_fichier($fichier_tmp["nom"],"image_browser")) {
    					$infos_dernier_fichier = infos_version_fichier($fichier_tmp["id_fichier"]);
    					list($width,$height) = getimagesize($chemin_dossier_courant.$infos_dernier_fichier["nom_reel"]);
    					$fichier_tmp["resolution"] = $width." x ".$height." ".$trad["darva"]["pixels"];
    				}
    				////	INFOBULLES
    				$txt_infobulle = $fichier_tmp["afficher_taille"];
    				if(@$fichier_tmp["resolution"]!="")  $txt_infobulle .= "<br />".$fichier_tmp["resolution"];
    				if($fichier_tmp["description"]!="")  $txt_infobulle .= "<br />".$fichier_tmp["description"];
    				$txt_infobulle_image = "<div style='color:#f33;'>".$trad["darva"]["apercu"]."&nbsp;<img src='".path_templates."divers/recherche.png'/></div>".$txt_infobulle;
    				$txt_infobulle_telecharger = "<div style='color:#f33;'>".$trad["divers"]["telecharger"]." &nbsp;<img src='".path_templates."divers/telecharger.png' /></div>".$txt_infobulle;
    				$a_lien_infobulle = "<a href=\"telecharger.php?id_fichier=".$fichier_tmp["id_fichier"]."\" ".infobulle($txt_infobulle_telecharger)." >";
    				////	ICONE DU FICHIER
    				if($fichier_tmp["vignette"]==1)	 { $icone_fichier = "<img src=\"".path_vignette.$fichier_tmp["id_fichier"].$fichier_tmp["extension"]."\" class=\"lien\" style=\"max-height:".$icone_max_height."px;max-width:".$icone_max_width."px;\"  onclick=\"afficher_images('".$fichier_tmp["id_fichier"]."');\" ".infobulle($txt_infobulle_image)." />"; }
    				else							 { $icone_fichier = $a_lien_infobulle."<img src=\"".path_templates."module_darva/type_fichier/".image_fichier($fichier_tmp["nom"]).".png\" style=\"max-height:".$icone_max_height."px;padding-top:5px;\" /></a>"; }
     
     
    				////	AFFICHAGE BLOCK
    				////
    				if($_REQUEST["type_affichage"]=="bloc")
    				{
    					echo div_element($objet["fichier"], $fichier_tmp["id_fichier"]);
    						////	MENU DE L'ELEMENT  +  VERSIONS DU FICHIER
    						echo "<div class=\"div_element_options\">";
    						include path_includes."menu_element.inc.php";
    						if($nb_versions>1)	echo "<br /><img src=\"".path_templates."module_darva/versions.png\" onclick=\"popup('versions_fichier.php?id_fichier=".$fichier_tmp["id_fichier"]."');\" class=\"lien\" style=\"margin-top:5px;\" ".infobulle($nb_versions." ".$trad["darva"]["nb_versions_fichier"])." />";
    						echo "</div>";
    						////	ICONE FICHIER + NOM
    						echo "<div class=\"div_element_contenu\">";
    							echo "<div style=\"text-align:center;\">".$icone_fichier."</div>";
    							echo "<table style=\"position:absolute;bottom:0px;width:100%;height:18px;font-weight:bold;line-height:10px;". (($fichier_tmp["vignette"]==1)?$_SESSION["skin"]["fond_lib_vignette"]:"") ." cellpadding=\"0px\" cellspacing=\"0px\"><tr><td style=\"text-align:center;vertical-align:middle;\">";
    								echo $a_lien_infobulle.strtolower(wordwrap($fichier_tmp["nom"],26,"<br />",true))."</a>";
    							echo "</td></tr></table>";
    						echo "</div>";
    					echo "</div>";
    				}
    				////	AFFICHAGE LISTE
    				////
    				else
    				{
    					echo div_element($objet["fichier"], $fichier_tmp["id_fichier"]);
    						echo "<div class=\"div_element_options\">";	include path_includes."menu_element.inc.php"; echo "</div>";
    						echo "<div class=\"div_element_contenu\" >";
    							////	ICONE FICHIER + NOM
    							echo "<table class=\"div_element_table\"><tr>";
    							echo "<td style=\"text-align:center;width:70px;\">".$icone_fichier."</td>";
    							echo "<td class=\"div_element_td lien\">".$a_lien_infobulle.$fichier_tmp["nom"]."</a></td>";
    							$versions  =  ($nb_versions>1)  ?  "<a href=\"javascript:popup('versions_fichier.php?id_fichier=".$fichier_tmp["id_fichier"]."');\">".$nb_versions." ".$trad["darva"]["nb_versions_fichier"]." &nbsp; <img src=\"".path_templates."module_darva/versions.png\" /></a><img src=\"".path_templates."divers/separateur.gif\" />"  :  "";
    							echo "<td class=\"div_element_td\" align=\"right\">".$versions." ".$fichier_tmp["afficher_taille"]." <img src=\"".path_templates."divers/separateur.gif\" /> ".$txt_auteur_tmp." <img src=\"".path_templates."divers/separateur.gif\" /> ".strftime("%d/%m/%Y",strtotime($fichier_tmp["date"]))."</td>"; // Depuis menu_element.inc.php
    							echo "</tr></table>";
    						echo "</div>";
    					echo "</div>";
    				}
    			}
    			////	AUCUN FICHIER
    			if($cpt_element==0)  echo "<div class=\"div_element_aucun\">".$trad["darva"]["aucun_fichier"]."</div>";
    			?>
    		</td>
    		<td id="statistiques_nationales" style="display:none">
    			<div class="div_menu_horizontal">
    				<?php
                                            echo "<a class=\"lien\"><img src=\"".path_templates."divers/dossier_arborescence.png\" />&nbsp;Statistiques nationales</a>&nbsp;&nbsp;";
                                    ?>
    			</div>
    			<hr style="clear:both;visibility:hidden;" />
    			<div class="div_element_page">		
    				<div>Statistiques nationales de juillet&nbsp;
    					<input type="text" name="annee_deb" id="annee_deb" maxlength="4" style="width:60px; text-align:center;" onClick="document.getElementById('annee_deb').focus();" onkeypress="return onlyNumbers(event)"/>&nbsp;&agrave;&nbsp;		
    					<input type="text" name="annee_fin" id="annee_fin" maxlength="4" style="width:60px; text-align:center;" onClick="document.getElementById('annee_fin').focus();" onkeypress="return onlyNumbers(event)"/>
    				</div>		
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    				<div>
    					<table id="table_statistiques_nationales" class="div_element_table_stat">
    						<tr>
    							<td></td>
    							<td colspan=2>Nb de rapport sans doublons</td>
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. r&eacute;parables</td>         
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. non r&eacute;parables</td> 
    							<td colspan=2>Co&ucirc;t moyen HT r&eacute;parations</td>         
    							<td colspan=2>Nb d'heures</td>
    							<td colspan=2>Co&ucirc;t des pi&egrave;ces</td>
    						</tr>
    						<tr>
    							<td></td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>     
    						</tr> 
    						<tr>         
    							<td>National VP</td>
    							<td id="VP_doublon_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_doublon_N" name="Input_VP_doublon_N"/>
    							<td id="VP_doublon_N1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_doublon_N1" name="Input_VP_doublon_N1"/>
    							<td id="VP_delai_veh_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_reparable_N" name="Input_VP_delai_veh_reparable_N"/>
    							<td id="VP_delai_veh_reparable_N1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_reparable_N1" name="Input_VP_delai_veh_reparable_N1"/>
    							<td id="VP_delai_veh_non_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_non_reparable_N" name="Input_VP_delai_veh_non_reparable_N"/>
    							<td id="VP_delai_veh_non_reparable_N1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_delai_veh_non_reparable_N1" name="Input_VP_delai_veh_non_reparable_N1"/>						     
    							<td id="VP_cout_reparation_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_reparation_N" name="Input_VP_cout_reparation_N"/>
    							<td id="VP_cout_reparation_N1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_reparation_N1" name="Input_VP_cout_reparation_N1"/>
    							<td id="VP_nb_heure_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_nb_heure_N" name="Input_VP_nb_heure_N"/>
    							<td id="VP_nb_heure_N1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_nb_heure_N1" name="Input_VP_nb_heure_N1"/>
    							<td id="VP_cout_piece_N">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_piece_N" name="Input_VP_cout_piece_N"/>
    							<td id="VP_cout_piece_N1">&nbsp;</td>
    							<input type="hidden" id="Input_VP_cout_piece_N1" name="Input_VP_cout_piece_N1"/>
    						</tr>     
    						<tr>         
    							<td>National CTTE</td>
    							<td id="CTTE_doublon_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_doublon_N" name="Input_CTTE_doublon_N"/>
    							<td id="CTTE_doublon_N1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_doublon_N1" name="Input_CTTE_doublon_N1"/>
    							<td id="CTTE_delai_veh_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_reparable_N" name="Input_CTTE_delai_veh_reparable_N"/>
    							<td id="CTTE_delai_veh_reparable_N1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_reparable_N1" name="Input_CTTE_delai_veh_reparable_N1"/>
    							<td id="CTTE_delai_veh_non_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_non_reparable_N" name="Input_CTTE_delai_veh_non_reparable_N"/>
    							<td id="CTTE_delai_veh_non_reparable_N1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_delai_veh_non_reparable_N1" name="Input_CTTE_delai_veh_non_reparable_N1"/>						     
    							<td id="CTTE_cout_reparation_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_reparation_N" name="Input_CTTE_cout_reparation_N"/>
    							<td id="CTTE_cout_reparation_N1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_reparation_N1" name="Input_CTTE_cout_reparation_N1"/>
    							<td id="CTTE_nb_heure_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_nb_heure_N" name="Input_CTTE_nb_heure_N"/>
    							<td id="CTTE_nb_heure_N1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_nb_heure_N1" name="Input_CTTE_nb_heure_N1"/>
    							<td id="CTTE_cout_piece_N">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_piece_N" name="Input_CTTE_cout_piece_N"/>
    							<td id="CTTE_cout_piece_N1">&nbsp;</td>
    							<input type="hidden" id="Input_CTTE_cout_piece_N1" name="Input_CTTE_cout_piece_N1"/>
    						</tr> 
    						<tr>         
    							<td>National Autres</td>
    							<td id="doublon_N">&nbsp;</td>
    							<input type="hidden" id="Input_doublon_N" name="Input_doublon_N"/>
    							<td id="doublon_N1">&nbsp;</td>
    							<input type="hidden" id="Input_doublon_N1" name="Input_doublon_N1"/>
    							<td id="delai_veh_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_reparable_N" name="Input_delai_veh_reparable_N"/>
    							<td id="delai_veh_reparable_N1">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_reparable_N1" name="Input_delai_veh_reparable_N1"/>
    							<td id="delai_veh_non_reparable_N">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_non_reparable_N" name="Input_delai_veh_non_reparable_N"/>
    							<td id="delai_veh_non_reparable_N1">&nbsp;</td>
    							<input type="hidden" id="Input_delai_veh_non_reparable_N1" name="Input_delai_veh_non_reparable_N1"/>						     
    							<td id="cout_reparation_N">&nbsp;</td>
    							<input type="hidden" id="Input_cout_reparation_N" name="Input_cout_reparation_N"/>
    							<td id="cout_reparation_N1">&nbsp;</td>
    							<input type="hidden" id="Input_cout_reparation_N1" name="Input_cout_reparation_N1"/>
    							<td id="nb_heure_N">&nbsp;</td>
    							<input type="hidden" id="Input_nb_heure_N" name="Input_nb_heure_N"/>
    							<td id="nb_heure_N1">&nbsp;</td>
    							<input type="hidden" id="Input_nb_heure_N1" name="Input_nb_heure_N1"/>
    							<td id="cout_piece_N">&nbsp;</td>
    							<input type="hidden" id="Input_cout_piece_N" name="Input_cout_piece_N"/>
    							<td id="cout_piece_N1">&nbsp;</td>
    							<input type="hidden" id="Input_cout_piece_N1" name="Input_cout_piece_N1"/>  
    						</tr>
    					</table>
    					<script>
    						var tableHTML = document.getElementById("table_statistiques_nationales");
    						var tableEdit = new HtmlEditTable({"table": tableHTML});
    					</script>	
    				</div>
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />								
    				<input type="button" id="btValidNational" value="Enregistrer" onclick="formValid('annee_deb','annee_fin')" class="button" />
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    			</div>	
    		</td>
    		<td id="statistiques_cabinets" style="display:none">
    			<div class="div_menu_horizontal">
    				<?php
                                            echo "<a class=\"lien\"><img src=\"".path_templates."divers/dossier_arborescence.png\" />&nbsp;Statistiques par cabinet</a>&nbsp;&nbsp;";
                                    ?>
    				<div class="div_element_contenu" >
    				</div>
    			</div>		
    			<hr style="clear:both;visibility:hidden;" />
    			<div class="div_element_page">		
    				<div>Statistiques du cabinet&nbsp;
    					<input type="text" id="nom_cabinet" style="width:250px" onClick="document.getElementById('nom_cabinet').focus();"/>&nbsp;de juillet&nbsp;
    					<SELECT id="annee_deb_select" size="1" style="width:80px"><OPTION>----<OPTION>2005<OPTION>2006<OPTION>2007<OPTION>2008<OPTION>2009</SELECT>&nbsp;&agrave;&nbsp;		
    					<SELECT id="annee_fin_select" size="1" style="width:80px"><OPTION>----<OPTION>2005<OPTION>2006<OPTION>2007<OPTION>2008<OPTION>2009</SELECT>
    				</div>		
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    				<div>
    					<table id="table_statistiques_cabinets" class="div_element_table_stat" >					
    						<tr>
    							<td></td>
    							<td colspan=2>Nb de rapport sans doublons</td>
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. r&eacute;parables</td>         
    							<td colspan=2>D&eacute;lai moyen de d&eacute;p&ocirc;t<br />V&eacute;h. non r&eacute;parables</td> 
    							<td colspan=2>Co&ucirc;t moyen HT r&eacute;parations</td>         
    							<td colspan=2>Nb d'heures</td>
    							<td colspan=2>Co&ucirc;t des pi&egrave;ces</td>
    						</tr>
    						<tr>
    							<td></td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>
    							<td>Ann&eacute;e N-1</td>         
    							<td>Ann&eacute;e N</td>     
    						</tr> 
    						<tr>         
    							<td>VP</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>						     
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>							
    							<td>&nbsp;</td>							
    						</tr>     
    						<tr>         
    							<td>CTTE</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>						     
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    						</tr> 
    						<tr>         
    							<td>Autres</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>						     
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>
    							<td>&nbsp;</td>     
    						</tr>
    					</table>
    					<script>
    						var tableHTML = document.getElementById("table_statistiques_cabinets");
    						var tableEdit = new HtmlEditTable({"table": tableHTML});
    					</script>									
    				</div>
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />								
    				<input type="button" id="btValidCabinet" value="G&eacute;n&eacute;rer" onclick="formValid('annee_deb_select','annee_fin_select')" class="button" />
    				<hr style="clear:both;visibility:hidden;" />
    				<hr style="clear:both;visibility:hidden;" />				
    			</div>	
    		</td>
    		</td>
    	</tr></table>
    </form>
     
     
    <?php
    ////    VISUALISATION DES IMAGES
    if($nb_img>0)
    {
            if($nb_img<10)  { $swf_width = $nb_img * 90; }
            else                    { $swf_width = round($_SESSION["cfg"]["resolution_width"] * 0.85); }
            $swf_height = "70";
            $flash_vars = "xmlFile=".$_SESSION["cfg_espace"]["vignettes_xml"]."&amp;dockWidth=".$swf_width."&amp;dockHeight=".$swf_height."&amp;smoothScrolling=true&amp;expandingDirection=center&amp;backgroundColor=000000&amp;autoScrollSpeed=1&amp;minThumbWidth=70&amp;minThumbHeight=70&amp;maxThumbWidth=100&amp;maxThumbHeight=100&amp;imagesInfluence=500&amp;fontSize=10&amp;useReflection=false&amp;fontSize=10";
    ?>
    	<div class="page_fantome" id="afficher_images">
    		<a onClick="masquer_images();" class="lien" style="position:absolute;top:0px;right:0px;margin:5px;color:#fff;font-style:italic;"><?php echo $trad["divers"]["fermer"]; ?> <img src="<?php echo path_templates; ?>divers/supprimer.png" /></a>
    		<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="<?php echo $swf_width; ?>" height="<?php echo $swf_height; ?>">
    			<param name="movie" value="vignettes.swf" />
    			<param name="FlashVars" value="<?php echo $flash_vars; ?>" />
    			<param name="wmode" value="transparent" />
    			<param name="allowScriptAccess" value="always" />
    			<param name="scale" value="noscale" />
    			<param name="salign" value="tl" />
    			<embed type="application/x-shockwave-flash" src="vignettes.swf"  width="<?php echo $swf_width; ?>" height="<?php echo $swf_height; ?>" wmode="transparent" allowScriptAccess="always" scale="noscale" salign="tl" FlashVars="<?php echo $flash_vars; ?>"></embed>
    		</object>
    		<iframe id="iframe_images" style="width:100%;margin:0px;padding:0px;" allowtransparency="true" frameborder="0">NO IFRAME</iframe>
    	</div>
     
    	<script type="text/javascript">
    	////	Redirection de l'iframe depuis le vignettes
    	function redirimg(id_fichier) {
    		element("iframe_images").src = "images.php?id_fichier="+id_fichier;
    		focus_iframe();
    	}
     
    	////	Focus Iframe =>  pour obtenir le focus de l'iframe au chargement et ensuite faire d�filer les images avec le clavier
    	function focus_iframe() {
    		element("iframe_images").contentDocument.getElementById("factice").focus();
    	}
     
    	////	Affiche les images dans une iframe
    	function afficher_images(id_fichier, diaporama)
    	{
    		New_Http_Request("GET", "vignettes_xml.php");
    		if(Http_Request_Result!="")  alert("XML error : "+Http_Request_Result);
    		(diaporama==true) ? diaporama = "&diaporama=1" : diaporama = "";
    		element("iframe_images").src = "images.php?id_fichier="+id_fichier+diaporama;
    		element("iframe_images").style.height = (document.documentElement.clientHeight - <?php echo $swf_height; ?>) + "px";
    		afficher("afficher_images", true);
    		element("iframe_images").onload = focus_iframe;
    	}
     
    	////	Masque les images
    	function masquer_images() {
    		afficher('afficher_images',false);
    	}
    	</script>
    <?php
    }
    include_once path_includes."footer.inc.php";
    ?>

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut


    c'est pas testable ça, ya du php.
    il faut le code généré.

  8. #8
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Le code généré est juste au dessus .....

    Jme suis aperçu également, lorsque l'on double click sur une cellule, que l'input est initialisé avec un espace (eu égard au fait certainement que l'on est mis "&nbsp;" dans le TD pour qu'il soit double cliquable). Il serait mieux de l'initialiser à vide si on est dans ce cas là !!! non ?

    J'aimerai également tester les coordonnées de la cellule double cliquer pour empécher l'utilisateur de saisir des bétises dans la colonne 0 car mon tableau à deux dimensions. Comment puis-je mis prendre ?

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par drumtof Voir le message
    Le code généré est juste au dessus

    Juste au-dessus, il y a un code PHP qui ne nous sert à rien car on a pas accès à ton environnement. Ce qu'il faut c'est le code HTML généré, celui affiché par ton navigateur !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Il est dans le messge au dessus du 31/08/2009, 14h50 on je dit également que ce code est sublime et ou je pose 2 questions, c'est le troisième message de la discussion je crois .....

  11. #11
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Tous mes pb énoncés un peu plus haut sont réglés...merci

  12. #12
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Bonjour à tous,

    J'aimerais savoir s'il est possible d'ajouter au sublime code de "bigboomshakala" : "créer une table HTML éditable" la navigation par tabulation, car moi je n'y suis pas arrivé ?

    Merci pour vos réponse

  13. #13
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    j'ai du déja proposer cette source:
    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>
    Les cellules deviennent editables au double click
    avec une surprise en colonne 4
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  14. #14
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Merci pour ce code mais j'aimerais intégrer cette fonctionnalité au .js de "bigboomshakala" pour éviter d'avoir tout à refaire....

    Personne pour m'aider....

  15. #15
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    J'ai ajouter ce code dans ma cellule d'édition pour passer à la cellule suivante avec la fonction nextSibling :

    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
     
    this.control.onkeypress= function(e){
    	// Tabulation
    	if (Tools.KeyCode(e) == 9){
    	      loseFocus(e);
    	      var src = Tools.Node(Tools.Target(e), "TD");
    	      srcEdit = src.nextSibling;
    	      var htmlEdit = new HtmlEdit(srcEdit.firstChild.data, srcEdit);
                  htmlEdit.AppendTo(srcEdit);
    	      srcEdit.ondblclick = null;
    	}			
    	// Entrée
    	if (Tools.KeyCode(e) == 13){
    	      loseFocus(e);	    
            }								    
    };
    Mais cela ne fonctionne pas non plus ..... personne à des notions en DOM pour m'aider

  16. #16
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    En fait j'arrive à intercepter la frappe de la touche tabulation en testant le keycode mais je n'arrive pas à donner le focus à la cellule suivante de mon tableau (ce qui équivaut au noeud suivant je pense )

    Jsui novice en DOM

  17. #17
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut

    arf désolé. dans l'immédiat je suis "full taf" + fêtes, c'est pas gagné pour que je puisse consacrer du temps à ça tout de suite (d'ailleurs je me fais rare sur le forum). je me remet au travail sur cette webgrid dès que possible. la navigation au clavier fait partie des évolutions prévues, du coup je commencerais peut-être par ça!

  18. #18
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Points : 142
    Points
    142
    Par défaut
    Je voudrais rajouter un petit truc
    table est assez sympathique avec ses nodelists associés sur tbody et sur tr
    mais idem sur le table, nous avec la node list 'rows' et 'tBodies'
    Donc on peut remplacer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var rows = this.control.getElementsByTagName("tbody")[0].rows
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var rows = this.control.tBodies[0].rows;
    autre petite parenthèse qui vous permettra de mieux maîtriser les <table> en HTML :

    un tableau contient un <thead> et un <tfoot> mais peut contenir plusieurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <table>
    	<thead></thead>
    	<tbody></tbody>
    	<tbody></tbody>
    	<tfoot></tfoot>
    </table>
    Donc pour résumer sur <table> vous aurez les propriétés suivantes :
    table.tHead <= reference au thead (ce n'est pas une nodelist puisque un thead est unique dans un <table>
    table.tFoot <- idem que pour thead
    table.tBodies[] <- nodelist contenant tous les tbodies
    table.rows <- nodelist de tous les tr du tableau (tous les tr compris dans les thead, tbodies et tfoot)
    table.tHead.rows <- nodelist des <tr> du thead
    table.tFoot.rows <- nodelist des <tr> du tfoot
    table.tBodies[n].rows <- nodelist des <tr> du tbody sur lequel on itère

  19. #19
    Membre du Club
    Inscrit en
    Mai 2009
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 141
    Points : 64
    Points
    64
    Par défaut
    Oki bigboomshakala ... j'attendrais un peu lol.... bonne fête de fin d'année et au mois de janvier....

  20. #20
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Gatsu35 Voir le message
    un tableau contient un <thead> et un <tfoot> mais peut contenir plusieurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <table>
    	<thead></thead>
    	<tbody></tbody>
    	<tbody></tbody>
    	<tfoot></tfoot>
    </table>
    Autre précision, il est préférable de positionner le tfoot avant le (ou les) tbody :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <table>
    	<thead></thead>
    	<tfoot></tfoot>
    	<tbody></tbody>
    	<tbody></tbody>
    </table>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Article] Créer une table HTML éditable en JavaScript v2.0
    Par bigboomshakala dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 16/05/2014, 16h32
  2. Réponses: 13
    Dernier message: 30/06/2011, 17h33
  3. Réponses: 4
    Dernier message: 22/01/2010, 10h24
  4. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21

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