Bonjour,
J'ai réalisé à l'aide de Bootstrap un tableau éditable qui affiche des données de ma base de données. La seconde partie consiste à réaliser une mise à jour de ma BDD (MYSQL) directement en modifiant les cellules du tableau.
Alors je sais le faire sur un tableau simple html via cette méthode :
Code html : 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 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="./js/jquery.js"></script> <script> $(document).ready(function() { $("td").click(function() { if( $(this).attr("contenteditable") == "true") { // le"id" du td doit contenir l'id de la BDD // le "name" doit contenir le nom du champ à modifier var contenu_avant = $(this).text(); var id_bdd = $(this).attr("id"); var champ_bdd = $(this).attr("name"); //alert("avant =" + contenu_avant); $(this).blur(function() { var contenu_apres = $(this).text(); //alert("contenu apres = " + contenu_apres); c if (contenu_avant != contenu_apres) { parametre='id='+id_bdd+'&champ='+champ_bdd+'&contenu='+contenu_apres ; //alert(param) ; $.ajax({ url: "updatedynamique.php", type: "POST", data: parametre, success: function(html) { //alert(html); } }); } }); }; }); }); </script> </head> <body> <?php try { $link = new PDO('mysql:host=localhost;dbname=voiture;charset=utf8', 'root', '',array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION )); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> <table id="tableau" border="1"> <tr> <td >-- NOM --</td> <td >-- TELEPHONE --</td> </tr> <tr> <td contenteditable="true" id="1" name="nom" > </td> <td contenteditable="true" id="1" name="telephone" > <?php $req =$link->query('SELECT prix from voiture WHERE id=1'); $donnees = $req->fetch(); echo $donnees['prix'] ;?></td> </tr> <tr> <td contenteditable="true" id="2" name="nom" ></td> <td contenteditable="true" id="2" name="telephone" ></td> </tr> </table> </body> </html>
Bien que la réalisation d'un tableau Boostrap est plus simple je n'arrive pas à récupérer les champs du tableau ( via les sélecteurs du DOM ) pour effectuer l'ajax.
Voici le code pour mon tableau Bootsrap :
Code html : 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 <body> <div class="container"> <h1>Editable</h1> <table id="table" data-toggle="table" data-pagination="true" data-show-export="true" data-url="./tableau_developpement_sw.php"> <thead> <tr> <th data-field="id_ligne">ID</th> <th data-field="type_sw" data-editable="true">Type</th> <th data-field="complexite" data-editable="true">complexite</th> <th data-field="date_lancement" data-editable="true">Date de lancement</th> <th data-field="date_livraison" data-editable="true">Date de Livraison</th> <th data-field="commentaire" data-editable="true">Commentaire</th> </tr> </thead> </table> </div> <script> $(document).ready(function() { $("th").click(function() { if( $(this).attr("data-editable") == "true") { console.log('ici'); }; }); }); </script> </body>
Le script ne donne rien.
Merci.
Partager