Bonjour à tous,
Je me tourne vers vous car j'ai un sacré soucis et je ne sais pas comment m'en sortir.
J'utilise redips-drag pour ceux qui connaissent. Il s'agit d'un script qui permet de faire du drag and drop sur un tableau puis d'enregistrer le tout en BDD.
Tout marche. Cependant, je cherche un moyen d'enregistrer les données récupérées dans une table spécifique selon le planning que l'utilisateur modifie.
L'utilisateur choisit d'afficher le planning qu'il veut à l'aide d'un select. Suite à cela il peut le modifier. Mais lors de l'enregistrement je n'arrive pas à faire en sorte que cela mette à jour le planning qu'il a choisit via le select.
Voila les différents scripts :
Ci-dessus c'est un extrait de page. Vous pouvez voir que la validation se fait grace à une fonction json.
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 $classe = $_POST['classe']; $sth = $dbh->prepare("SELECT * FROM drag_$classe"); $sth->execute(); ?> <div class="table-overflow"> <table id="table1"> <colgroup><col width="50"/><col width="120"/><col width="120"/><col width="120"/><col width="120"/><col width="120"/><col width="120"/></colgroup> <tr> <td colspan="7" class="redips-mark header">2014-2015 : CLASSE <?php echo strtoupper($classe); ?></td> </tr> <tr> <td class="redips-mark header"></td> <td class="redips-mark header">Date</td> <td class="redips-mark header">Matin</td> <td class="redips-mark header">Intervenant</td> <td class="redips-mark header">Arpès-Midi</td> <td class="redips-mark header">Intervenant</td> <td class="redips-mark header">Commentaire</td> </tr> <?php while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { $data[$row['row']][$row['cell']] = $row['date'].$row['id']; } for ($ligne = 2; $ligne < 65; $ligne++) { echo '<tr style="background-color: #eee">'; echo '<td class="redips-rowhandler"><div class="redips-drag redips-row move"></div></td>'; for ($colonne = 1; $colonne < 7; $colonne++) { $valeur = isset($data[$ligne][$colonne]) ? $data[$ligne][$colonne] : ''; if($valeur != '') { echo '<td><div id="'. utf8_decode($valeur) .'" class="redips-drag t3 contenu">'. utf8_decode($valeur) .'</div></td>'; } else { echo '<td></td>'; } } echo '</tr>'; } ?> </table> </div> <div class="table-overflow"> </div> <div class="clear"></div> <div class="ewf-row div_input_planning"> <input type="button" value="Enregistrer" onclick="save('json')" class="input_planning"/> <input type="button" id="btnExport" value="Exporter sous Excel" class="input_planning"/> </div>
Ci-dessus le bout de code JSON qui va enregistrer les infos en BDD.
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 <?php urldecode($_SERVER['QUERY_STRING']) ?> <?php $base = mysql_connect ("***", "***", "***"); mysql_select_db (***', $base) ; $vider = "TRUNCATE TABLE drag"; mysql_query($vider); // accept JSON parameter (and Un-quote string if needed) $p = urldecode($_REQUEST['p']); // decode JSON object (it shouldn't be decoded as associative array) $arr = json_decode($p); var_dump($arr); // open loop through each array element foreach ($arr as $p){ // set id, row index and cell index $id = $p[0]; $row = $p[1]; $cell = $p[2]; $date = $p[3]; // instead of print, you can store accepted parameteres to the database $id = htmlentities($id, ENT_QUOTES, "UTF-8"); $date = htmlentities($date, ENT_QUOTES, "UTF-8"); $ajout = "INSERT INTO drag_$classe VALUES('','$id','$row','$cell','$date')"; mysql_query($ajout); } mysql_close($base); ?>
Après il y a aussi le script source de redips-drag avec les différentes fonctions. Si vous en avez besoin je le rajoute mais il est long !
Merci pour votre aide ;-)
Partager