IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Input éditable via boutton et requêtes SQL


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut Input éditable via boutton et requêtes SQL
    Bonjour à toutes et à tous!
    Afin de répondre à un cahier des charges, je doit lors de l’appuie sur un bouton, rendre des cases ( input ) éditables afin de pouvoir modifier leurs contenu et lors de la validation modifier directement dans la BDD les nouvelles données, je tien à préciser que lord du clic sur le bouton Edition, le bouton se transforme en bouton de validation.

    Voici la présentation de mon tableau :

    Nom : tab-ajout.png
Affichages : 186
Taille : 27,4 Ko

    Et voici mon code :

    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
    <!DOCTYPE html>
    <html>
    <body>
    <head>
     
      <meta charset="UTF-8">
     
      <title>CodePen - Minimal Flat Table Design</title>
     
    <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
     
    		<link rel="stylesheet" type="text/css" href="animate.css" media="screen" />
        <style type="text/css">
     
            html {
                height: 100%;
                width: 100%;
            }
     
            body {
                font-family: 'PT Sans', Tahoma, Arial, serif;
                line-height: 13px
            }
     
        </style>
    	<link rel="stylesheet" type="text/css" href="css/style.css" media="screen" />
    	 <link rel="stylesheet" type="text/css" href="buttons.css"/>
     
     
     
    <script type='text/javascript'>
     
    // On attend que la page soit chargée 
    jQuery(document).ready(function()
    {
       // On cache la zone de texte
       jQuery('#sForm').hide();
       // toggle() lorsque le lien avec l'ID #toggler est cliqué
       jQuery('.button.plusTd').click(function()
      {
          jQuery('#sForm').toggle(400);
          return false;
       });
    });
    /* ]]> */ 
     
    // On attend que la page soit chargée 
    jQuery(document).ready(function()
    {
       // On cache la zone de texte
       jQuery('#sForm').hide();
       // toggle() lorsque le lien avec l'ID #toggler est cliqué
       jQuery('.button.plusTd2').click(function()
      {
          jQuery('#sForm').toggle(400);
          return false;
       });
    });
    /* ]]> */ 
     
     
    /*      La le texte est en brut mais l'interet serait
            de mettre un iD a ce <tr> et de copier le
            contenu grace à clone();
            http://api.jquery.com/clone/                                    */
    jQuery(document).ready(function()
    {
     
     
    $('.plusTd1').on('click',function() {
            $('#sFormadd').after('<tr><td><center><input type="text" name="index" id="text" size="15" value=""  maxlength="20"></center> </td><td><input type="text" name="nom" size="15" id="text0" value="" class="remplit" maxlength="20"><br></td><td><input type="text" name="id" size="15" id="text1"  value="" class="remplit" maxlength="20"> </td><td><input type="text"  size="15" name="type" id="text2" value="" class="remplit" maxlength="20"><br></td><td><input type="text" name="table" size="15" id="text3" value="" class="remplit" maxlength="20"> </td></tr>');
    });
    });
    /* ]]> */ 
     
    </script>
     
    </head>
     
     
    <?php
    /* ------------------ CASE A COCHER ------------------ */
     // connexion
    $mysql_user="admin";
    $mysql_password="admin";
    $reqco = mysql_connect("localhost",$mysql_user,$mysql_password);
     
    //sélection de la BDD
    $reqse = mysql_select_db("tp_arexx",$reqco);
     
    //résupération des informations
    $reqt=mysql_query("SELECT * FROM tp_arexx_capteurs",$reqco);
    if ( $reqco == NULL ) 
    { 
        echo " Cet agent n'a participé à aucune session."; 
    } 
     
    /* ------------------ CASE A COCHER ------------------ */
    /* ------------------ CASE A COCHER ------------------ */
     
    if(!empty($_POST['champ'])) {
        // selection des noms de tables
        $sql = 'select Arexx_Table FROM tp_arexx_capteurs WHERE Arexx_index in('.implode(',',$_POST['champ']).')';
        $req = mysql_query($sql);
        while($d = mysql_fetch_assoc($req)) {
            $sql = 'DROP TABLE '.$d['Arexx_Table'];
            $req = mysql_query($sql);
        }
        mysql_free_result($req);
        // suppression des lignes
        $delete =  'DELETE FROM tp_arexx_capteurs WHERE Arexx_index in('.implode(',',$_POST['champ']).')';
            $req1 = mysql_query($delete);
        
    }
            
     
     ?>
    <script type="text/javascript">
     
        function generate(layout) {
     
            var n = noty({
    		animation: {
            open: 'animated zoomIn', // Animate.css class names
            close: 'animated  zoomOut', // Animate.css class names
        },
     
                text        : 'Supression de X élements et de leurs tables liées.<br>Opérations terminées correctements.</br>',
                type        : 'success',
                dismissQueue: true,
                layout      : layout,
                theme       : 'relax',
    			 template: '<div class="noty_message"><span class="noty_text"></span><div class="noty_close"></div></div>',
     
            }).setTimeout(3800).close();
     
     
            console.log('html: ' + n.options.id);
        }
     
     
        function generateAll() {
     
            generate('center');
     
     
        }
     
        $(document).ready(function () {
     
            generateAll();
     
        });
     
      </script>
    <?php
     
     
     
     
    /* ------------------ A partir d'ici table : alimentaire Lecture ------------------ */
    $reponse = mysql_query("SELECT * FROM tp_arexx_capteurs"); // Requête SQL
    ?>
     
     
     <form method="POST" id="form" name="form">
     
     <div class="top-shadow">
    <table class="flatTable" table border="0" CELLSPACING="0" >
      <tr class="titleTr">
        <td class="titleTd">Liste des capteurs</td>
        <td colspan="4"></td>
        <td class="plusTd button"></td>
     
    				    <td class="plusTd3 button"></td>
    	</div>
     
      </tr>
      <tr class="headingTr">
     <td><center>Index du capteur</center></td> 
    <td><center>Nom du capteur</center></td> 
    <td><center>Identifiant du capteur</center></td> 
    <td><center>Type du capteur</center></td> 
    <td><center>Table correspondant au capteur</center></td>
    <td><center>Supprimer le capteur</center></td>
    <td><center>Edition&nbsp;</center></td>
        <td></td>
      </tr>
     
     
    <?php
    //Affichage des informations
     
    while ($tab_contenu=mysql_fetch_array($reponse)){
     
     
    ?> 
    <tr>
    <td><center><?php echo $tab_contenu['Arexx_index']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Name']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Id']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Type']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Table']; ?></center></td>
    <section title=".squaredFour">
        <!-- .squaredFour -->
        <div class="squaredFour">
         <td style="text-align:center;width:20%;"><input type="checkbox" id="squaredFour" name="champ[]" value="<?php echo $tab_contenu['Arexx_index']; ?>" /></td>
     
     
          <label for="squaredFour"></label> 
        </div>
        <!-- end .squaredFour -->
      </section>
     <td class="controlTd">
          <div class="settingsIcons">
            <span class="settingsIcon"><img src="http://i.imgur.com/nnzONel.png" alt="X" /></span>
            <span class="settingsIcon"><img src="http://i.imgur.com/UAdSFIg.png" alt="placeholder icon" /></span>
            <div class="settingsIcon"><img src="http://i.imgur.com/UAdSFIg.png" alt="placeholder icon" /></div>
          </div>  
        </td>
    </tr> 
     
    <?php 
    } 
     
    ?> 
    </table>
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
      <form method="POST" action="Create.php" name="form">
     
    <div id="sForm" class="sForm sFormPadding">
    		<table class="flatTable" table border="0" CELLSPACING="0" >
     
     
      <tr class="titleTr">
        <td class="titleTd">Ajouter un capteur</td>
        <td colspan="4"></td>
     
     
    	<td class="plusTd2 button"></td>
    		<td class="plusTd4 button"></td>
    	<td class="plusTd1 button"></td>
     
     
     
     
      </tr>
      <tr class="headingTr">
     <td><center>&nbsp;Index du capteur&nbsp;</center></td> 
    <td><center>&nbsp;Nom du capteur&nbsp;</center></td> 
    <td><center>&nbsp;Identifiant du capteur&nbsp;</center></td> 
    <td><center>&nbsp;Type du capteur&nbsp;</center></td> 
    <td><center>&nbsp;Table correspondant au capteur&nbsp;</center></td>
        <td></td>
      </tr>
     
     
    <div id="sFormadd" class="sForm sFormPadding">
     
     
     <tr>
    <td><center><input type="text" name="index" id="text" size="15" value=""  maxlength="20"></center> </td> 
    <td><input type="text" name="nom" size="15" id="text0" value="" class="remplit" maxlength="20"><br></td> 
    <td><input type="text" name="id" size="15" id="text1"  value="" class="remplit" maxlength="20"> </td> 
    <td><input type="text"  size="15" name="type" id="text2" value="" class="remplit" maxlength="20"><br></td> 
    <td><input type="text" name="table" size="15" id="text3" value="" class="remplit" maxlength="20"> </td> 
    </tr> 
    </form>
     
     
    <?php 
    $reponse1 = mysql_query("SELECT * FROM tp_arexx_capteurs");
    //Affichage des informations
    while ($tab_contenu=mysql_fetch_array($reponse1)){
     
     
             include 'Create.php';
     
     
     
    }
     
    ?>
     </div>
     
    </table>
     <div class="bottom-shadow"></div>
        </div>
     
    <link href='http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900' rel='stylesheet' type='text/css'>
     
      <script src='http://codepen.io/assets/libs/fullpage/jquery.js'></script>
     
      <script src="js/index.js"></script>
     
     
     
     
    </ul>
     
    </form>
     
        </div>
    <script src="jquery-1.7.2.min.js"></script>
     
    <!-- noty -->
     
    <link rel="stylesheet" type="text/css" href="font-awesome/css/font-awesome.min.css" media="screen" />
    <script type="text/javascript" src="js/noty/packaged/jquery.noty.packaged.min.js"></script>
     
    <script type="text/javascript">
    $('.button.plusTd3').click(function(){
     
    if( $('input[id="squaredFour"]').is(':checked') ){
     
     
        function generate(layout) {
     
            var n = noty({
    		animation: {
            open: 'animated zoomIn', // Animate.css class names
            close: 'animated  zoomOut', // Animate.css class names
        },
     
                text        : 'Voulez vous vraimmant continuer ?',
                type        : 'alert',
                dismissQueue: true,
                layout      : layout,
                theme       : 'relax',
                buttons     : [
                    {addClass: 'btn btn-primary', text: 'Oui, supprimer', onClick: function ($noty) {
                        $noty.close(); 
    					document.forms["form"].submit();
    		}
     
                    },
                    {addClass: 'btn btn-danger', text: 'Annuler', onClick: function ($noty) {
                        $noty.close();
                      noty({dismissQueue: true, force: true, layout: layout, theme: 'relax', text: 'Vous avez annuler l\'opération', type: 'error'}).setTimeout(3600).close();
     
                    }
                    }
     
                ]
            });
            console.log('html: ' + n.options.id);
        }
     
     
        function generateAll() {
     
            generate('center');
     
     
        }
     
        $(document).ready(function () {
     
            generateAll();
     
        });
    }
     
    else {
        noty({text: 'Vous ne pouvez pas éffectuer cette opération.<br> Sélectionnez au moins une ligne.</br>', type: 'error', theme: 'relax', layout: 'center',}).setTimeout(3800).close();
    }
    });
    </script>
    <script type="text/javascript">
    $('.button.plusTd4').click(function(){
     
    if($(".remplit").val()==""){
       noty({text: 'Vous ne pouvez pas éffectuer cette opération.<br> Seule la case "Index du capteur" peut rester vide.</br>', type: 'error', theme: 'relax', layout: 'center',}).setTimeout(3800).close();
       }
       else {
        function generate(layout) {
     
            var n = noty({
    		animation: {
            open: 'animated zoomIn', // Animate.css class names
            close: 'animated  zoomOut', // Animate.css class names
        },
     
                text        : 'Voulez vous vraimmant continuer ?',
                type        : 'alert',
                dismissQueue: true,
                layout      : layout,
                theme       : 'relax',
                buttons     : [
                    {addClass: 'btn btn-primary', text: 'Oui, ajouter', onClick: function ($noty) {
                        $noty.close(); 
    					document.forms["form"].submit();
     
     
     
    		}
     
                    },
                    {addClass: 'btn btn-danger', text: 'Annuler', onClick: function ($noty) {
                        $noty.close();
                      noty({dismissQueue: true, force: true, layout: layout, theme: 'relax', text: 'Vous avez annuler l\'opération.', type: 'error', theme: 'relax', layout: 'center',}).setTimeout(3500).close();
     
                    }
                    }
     
                ]
            });
            console.log('html: ' + n.options.id);
        }
     
     
        function generateAll() {
     
            generate('center');
     
     
        }
     
        $(document).ready(function () {
     
            generateAll();
     
        });
     
    }
    });
     
    </script>
    <script type="text/javascript">
    $('.controlTd').click(function(){
     
     
        function generate(layout) {
     
            var n = noty({
    		animation: {
            open: 'animated zoomIn', // Animate.css class names
            close: 'animated  zoomOut', // Animate.css class names
        },
     
     
                type        : 'warning',
                dismissQueue: true,
                layout      : layout,
                theme       : 'relax',
          text: 'Attention ! <br> Les éléments de cette ligne sont modifiable.</br>',
    	   timeout: 3800,
            });
            console.log('html: ' + n.options.id);
        }
     
     
        function generateAll() {
     
            generate('center');
     
     
        }
     
        $(document).ready(function () {
     
            generateAll();
     
        });
     
     
    });
    </script>
     
    </body>
    </html>
    Je ne sais pas du tout par ou m'y prendre ! Voilà un grand merci à vous tous !
    Bonne soirée/journée/matinée.

  2. #2
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!

    J'ai pas lu les 486 lignes de code...

    Mais je vois que tu utilises Jquery, donc tu peux te servir de la méthode removeAttr() pour enlever le readonly d'un input, et de la méthode attr() pour modifier l'action d'un formulaire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut
    Merci d'avoir répondu !
    Mais c'est vrai que je débute et tu me parle un peu chinois .. Enfin je comprend bien de quoi tu parle mais je doit l'insérer dans le code là est le problème ahah !
    Voilà à bientôt

  4. #4
    Membre éprouvé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 48
    Par défaut
    Salut,

    Je pense que nous pourrions plus facilement t'aider si tu nous donnait uniquement les parties concernées du code:
    les inputs/divs qui interviennent dans ce que tu veux faire (par exemple l'input dans lequel on écrira et le bouton de validation), les codes JavaScript liés à ces éléments si il y en a.

    Bonne soirée

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut
    Un grand merci pour vos réponse alors voilàa, le code concerné :

    Voici la partie PHP qui permet d'afficher dans le tableau le contenu de la table :
    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
     
     
    <?php
    /* ------------------ CASE A COCHER ------------------ */
     // connexion
    $mysql_user="admin";
    $mysql_password="admin";
    $reqco = mysql_connect("localhost",$mysql_user,$mysql_password);
     
    //sélection de la BDD
    $reqse = mysql_select_db("tp_arexx",$reqco);
     
    //résupération des informations
    $reqt=mysql_query("SELECT * FROM tp_arexx_capteurs",$reqco);
    if ( $reqco == NULL ) 
    { 
        echo " Cet agent n'a participé à aucune session."; 
    } 
     
    /* ------------------ CASE A COCHER ------------------ */
    /* ------------------ CASE A COCHER ------------------ */
     
    if(!empty($_POST['champ'])) {
        // selection des noms de tables
        $sql = 'select Arexx_Table FROM tp_arexx_capteurs WHERE Arexx_index in('.implode(',',$_POST['champ']).')';
        $req = mysql_query($sql);
        while($d = mysql_fetch_assoc($req)) {
            $sql = 'DROP TABLE '.$d['Arexx_Table'];
            $req = mysql_query($sql);
        }
        mysql_free_result($req);
        // suppression des lignes
        $delete =  'DELETE FROM tp_arexx_capteurs WHERE Arexx_index in('.implode(',',$_POST['champ']).')';
            $req1 = mysql_query($delete);
        
    }
            
     
     ?>
    Voici, ensuite l'affichae des infos grace à une boucle while et la partie html permmettant la mise en forme du tableau :
    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
    <?php
     
     
     
     
    /* ------------------ A partir d'ici table : alimentaire Lecture ------------------ */
    $reponse = mysql_query("SELECT * FROM tp_arexx_capteurs"); // Requête SQL
    ?>
     
     
     <form method="POST" id="form" name="form">
     
     <div class="top-shadow">
    <table class="flatTable" table border="0" CELLSPACING="0" >
      <tr class="titleTr">
        <td class="titleTd">Liste des capteurs</td>
        <td colspan="4"></td>
        <td class="plusTd button"></td>
     
    				    <td class="plusTd3 button"></td>
    	</div>
     
      </tr>
      <tr class="headingTr">
     <td><center>Index du capteur</center></td> 
    <td><center>Nom du capteur</center></td> 
    <td><center>Identifiant du capteur</center></td> 
    <td><center>Type du capteur</center></td> 
    <td><center>Table correspondant au capteur</center></td>
    <td><center>Supprimer le capteur</center></td>
    <td><center>Edition&nbsp;</center></td>
        <td></td>
      </tr>
     
     
    <?php
    //Affichage des informations
     
    while ($tab_contenu=mysql_fetch_array($reponse)){
     
     
    ?> 
    <tr>
    <td><center><?php echo $tab_contenu['Arexx_index']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Name']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Id']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Type']; ?></center></td> 
    <td><center><?php echo $tab_contenu['Arexx_Table']; ?></center></td>
    <section title=".squaredFour">
        <!-- .squaredFour -->
        <div class="squaredFour">
         <td style="text-align:center;width:20%;"><input type="checkbox" id="squaredFour" name="champ[]" value="<?php echo $tab_contenu['Arexx_index']; ?>" /></td>
     
     
          <label for="squaredFour"></label> 
        </div>
        <!-- end .squaredFour -->
      </section>
    Voici ici enfin le code concerner, enfin plutôt le bouton "Edition" qui permettra de rendre les cases éditables :

    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
     
     <td class="controlTd">
          <div class="settingsIcons">
            <span class="settingsIcon"><img src="http://i.imgur.com/nnzONel.png" alt="X" /></span>
            <span class="settingsIcon"><img src="http://i.imgur.com/UAdSFIg.png" alt="placeholder icon" /></span>
            <div class="settingsIcon"><img src="http://i.imgur.com/UAdSFIg.png" alt="placeholder icon" /></div>
          </div>  
        </td>
    </tr> 
     
    <?php 
    } 
     
    ?> 
    </table>
    Je n'est établis encore aucun script Javascript ou Jquery ou d'AJAX permettant de faire tout cela, si vous pouviez m'aider voillàa un grand merci !

  6. #6
    Membre éprouvé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 48
    Par défaut
    Salut,

    Pour rendre un/des élément(s) éditable, tu peux modifier sont attribut 'contenteditable':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".flatTable tr td center").attr("contenteditable", "true");
    Puis pour le remettre normal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(".flatTable tr td center").attr("contenteditable", "false");
    Ce qui donnerait par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $("#monboutonedition").click(function(){
        $(".flatTable tr td center").attr("contenteditable", "true");
    });
    Tu pourrais également utiliser des balises <input> dans tes balises <center> comme l'a conseillé ryan.
    Ce qui donnerait quelque chose du genre en html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <td><center><input readonly='readonly' class='element_modifiable' value='<?php echo $tab_contenu['Arexx_Id']; ?>' /></center></td>
    et en javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $("#monboutonedition").click(function(){
        $(".element_modifiable").prop('readonly', false);
    });
    NB: le code html avec l'input doit être amélioré, il posera problème si une des variables php contiens le caractère «'».

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut
    Un trés grand merci à toi !
    Je vais tester de mettre tout cela en place et je te tien au courant mais tu m'a bien décortiquer la chose !
    Je sais que mon code n'est pas trés propre je vais m'y mettre sérieusement.
    Merci à bientôt !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut
    La première solution marche parfaitement seulement, je veut en réalité crée un input text comme dans la deuxiéme solution avec la valeur dedans au clique sur ce bouton, comment dois-je m'y prendre ?
    Merci beaucoup !

  9. #9
    Membre éprouvé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 48
    Par défaut
    Donc au départ ce serait
    <td><center>Texte</center></td>
    et durant la modification
    <td><center><input value='Texte'/></center></td>
    alors ?

    Il faudrait donc pour chaque td, y insérer un input avec la bonne valeur.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $("#monboutonedit").click(function(){ //au clic sur le bouton
        $(".flatTable tr td center").each(function(){ //on parcours tout les éléments (les <center> dans un <td> dans un <tr> dans le tableau de classe flatTable)
     
            var contenuElement = $(this).text(); //je récupère le contenu de l'élément <center>
            $(this).html("<input class='modif_input'/>"); //j'insère un input dans l'élément <center> ->le contenu est donc remplacé par un input vide
            $(this).children("input").val(contenuElement); //je sélectionne l'input dans l'élément center et je défini son contenu
     
        });
    });

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut
    Un grand merci à toi !
    Sa marche parfaitement !
    Maintenant si je veut lorsque je modifie donc c'est Input, au deuxième clique sur ce bouton, modifier ces données dans la base de données comment dois-je m'y prendre ? Ou aurait tu un code a me préciser ? Merci beaucoup !

    Voici mon code actuel légèrement modifier :

    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
    <script type='text/javascript'>/* ELEMENT EDITABLE */
    jQuery(document).ready(function()
    {
     
    $(".controlTd").click(function(){
     
        $(".contenu td center").each(function(){ //on parcours tout les éléments (les <center> dans un <td> dans un <tr> dans le tableau de classe flatTable)
     
            var contenuElement = $(this).text(); //je récupère le contenu de l'élément <center>
            $(this).html("<input class='modif_input'/>"); //j'insère un input dans l'élément <center> ->le contenu est donc remplacé par un input vide
            $(this).children("input").val(contenuElement); //je sélectionne l'input dans l'élément center et je défini son contenu
     
        });
    });
    });
    </script>

  11. #11
    Membre éprouvé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 48
    Par défaut
    Pour modifier les données dans la bdd, tu devrais utiliser AJAX: https://developer.mozilla.org/fr/docs/AJAX/Premiers_pas
    pour envoyer le contenu des inputs au serveur.

    Pour remettre le texte norma, il faut simplement parcourir à nouveau tout les center, récupérer le contenu de l'input à l'intérieur de chaque ( $(this).children("input").val() ), puis définir le contenu de l'élément.

    Je te laisse essayer ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 58
    Par défaut
    D'accord, sa marche je vais essayer tout ça, tu m'a déja bien dépatouiller !
    Et une dernière chose pour modifier le bouton au clique sur ControlTd comment puis-je faire ?
    Pour le remplacer et en mettre un autre mais a la même place ?
    Un grand merci !

  13. #13
    Membre éprouvé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2014
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2014
    Messages : 48
    Par défaut
    Pour insérer du code après un élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#premierbouton").after("<div id='deuxiemebouton'>Ok</div>");
    Et pour supprimer un élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("#premierbouton").remove();
    Mais tu devrais peut être faire autrement:
    Avoir déja les 2 boutons dans le code, le premier visible et l'autre non, et lorsque tu clic sur un, sa le cache et sa affiche l'autre ?
    Car quand tu recrée un élément (comme dans la première méthode), tu dois redéfini les événements (clic par exemple) sur cet élément à chaque fois..

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $("#bouton1").click(function(){
        $(this).fadeOut(0); //cacher ce bouton
        $("#bouton2").fadeIn(0); //afficher l'autre
     
    });
    $("#bouton2").click(function(){
        $(this).fadeOut(0); //cacher ce bouton
        $("#bouton1").fadeIn(0); //afficher l'autre
     
    });

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

Discussions similaires

  1. [Sybase] Accélérer une requête SQL via ODBC.
    Par phtpht dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 04/01/2007, 15h36
  2. Requête SQL via Visual basic
    Par NoViceDel dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/05/2006, 11h12
  3. Recherche ibrairie pour éxécuter des requêtes SQL via C++
    Par daemon dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 14/06/2004, 10h28
  4. Récupurer via une requête SQL la valeur la plus proche
    Par yoda_style dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/04/2004, 13h52

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