Bonjour à tous,

J'ai un souci au niveau de la sauvegarde de mes modules.
En effet, j'ai un système qui permet l'ajout d'un nouveau module et modification de la position des modules (par glisser-déposer).
Mon système est constitué de 3 étapes :
- 1 : Ajout nouveau module et sauvegarder.
- 2 : Mise à jour de la position des modules.
- 3 : Ajout nouveau module et gestion d'ordre des modules en même et sauvegarde.

Mon problème est que je n'arrive pas à faire ma sauvegarde. Je récupère bien mes données via la console mais je ne les enregistre pas ni les mettre à jour pour le cas de la gestion d'ordre des modules. Merci pour votre aide.

Voici mon code dans le fichier jsfiddle pour ce qui est côté : HTML + CSS + JS :https://jsfiddle.net/mecano/fe7fjzd2/


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
 
// include connection file
    require_once('db.php');
 
    if (isset($_POST['datas'])){
        $datas = json_decode($_POST['datas']);
        var_dump($datas);
 
        function update_module($id,$rang){
            $sql = "UPDATE test_newsletter SET position = :rang WHERE id = :id";
            $datas = array(":id"=>$id, ":rang"=>$rang);
            return queryExec($sql,$datas);
        }
        function insert_module($text,$img,$rang,$datatype){
            $sql = "INSERT INTO test_newsletter (texte, image, position, datatype) VALUES (:texte, :img, :rang, :type)";
            $datas = array(":texte"=>$text, ":img"=>$img, ":rang"=>$rang, ":type"=>$datatype);
            return queryExec($sql,$datas);
        }
 
        function queryExec($sql,$datas){
            global $db;
            try {
                $req = $db->prepare($sql);
                $res = $req->execute($datas);
                $result = array(
                    'status'=> $res,
                    'msg'=>'Module enregistré avec success !',
                    'debug'=>array("requete"=>$sql, "datas"=>$datas)
                );
            } catch (Exception $e) {
                //erreur dans la requete
                $result = array(
                    'status'=>false,
                    'msg'=>'Erreur ! '.$e->getMessage(),
                    'debug'=>array("requete"=>$sql, "datas"=>$datas)
                );
            }
            return $result;
        }
 
        foreach ($datas as $val) {
            $id = !empty($val->id) ? $val->id : NULL;
            $rang = isset($val->rang) ? $val->rang : "";
            $text = isset($val->text) ? $val->text : "";
            $img = isset($val->img) ? $val->img : "";
            $datatype = isset($val->datatype) ? $val->datatype : "";
 
            $debug_count = 0;
            if ($id && $rang) {
                $debug_count += 1;
                $msg = update_module($id,$rang);
            } else if ($text && $img && $rang && $datatype) {
                $debug_count += 100;
                $msg = insert_module($text,$img,$rang,$datatype);
            } else if ($id && $text && $img && $rang && $datatype) {
                $debug_count += 10000;
                $msg = update_module($id,$rang);
                $msg = insert_module($text,$img,$rang,$datatype);
            } else {    
                $debug_count += 100000;
                $msg = array( 'status'=>false,
                    'msg'=>"Erreur ! Echec de mise à jour !",
                    'debug'=>$_POST
                );
            }
        }
    }
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
// Partie affichage de mes modules 

    // Contenu de la table `newsletter`
    INSERT INTO `test_newsletter` (`id`, `texte`, `image`, `position`, `datatype`) VALUES
    (1, 'NULL', 'http://zupimages.net/up/17/32/bgot.jpg', '4', 'images'),
    (2, 'Oportunum est, ut arbitror, explanare nunc causam, quae ad exitium praecipitem.', 'http://zupimages.net/up/17/32/bgot.jpg', 
    '5', 'texte-image'),
    (3, 'Oportunum est, ut arbitror, explanare nunc causam, quae ad exitium praecipitem.', 'NULL', '6', 'textes');

    <div id="bloc_2">
            <?php foreach ($rows as $row) { 
                switch ($row['datatype']) {    
                    case "images":
            ?>
                <div id="div_1" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="images">
                    <img src="<?=$row['image'];?>" width="120" height="70">
                    <img src="<?=$row['image_2'];?>" width="120" height="70">
                </div>
            <?php
                        break;
                    case "texte-image":
            ?> 
                <div id="div_2" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="texte-image">
                    <div class="size-paragraphe margin-elt"><?=$row['texte'];?></div>
                    <div><img src="<?=$row['image'];?>" width="50" height="50"></div>
                </div>
            <?php
                        break;
                    case "image-texte":
            ?> 
                <div id="div_2" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="image-texte">
                    <div class="margin-elt float-elt"><img src="<?=$row['image'];?>" width="50" height="50"></div>
                    <div class="size-paragraphe"><?=$row['texte'];?></div>
                </div>
            <?php
                        break;
                    case "textes":
            ?>    
                <div id="div_3" class="drag-drop" data-id="<?=$row['id'];?>" data-position="<?=$row['position'];?>" data-type="textes">
                    <p class="size-paragraphe"><?=$row['texte'];?></p>
                    <p class="size-paragraphe"><?=$row['texte'];?></p>
                </div>
            <?php
                        break;
                    default: 
                        echo '';
                  }    
            } ?>    
            </div>