Liste sortable + mise à jour dans bdd

Petit nouveau ! | 3 Messages

28 sept. 2015, 11:55

Bonjour,

J'ai créé une liste sortable avec drag'n'drop qui fonctionne bien.
J'aimerais enregistrer les nouvelles positions dans ma bdd mais je n'y arrive pas!

Code : Tout sélectionner

public function ordonnerMenu($idMenu, $ordreMenu) { $sql = "UPDATE menu SET ordre='$ordreMenu' WHERE id_menu='$idMenu'"; $res = $this->executerRequete($sql); }

Code : Tout sélectionner

public function ordonnerMenu() { $idMenu = $this->requete->getParametre("idMenu"); $ordreMenu = $this->requete->getParametre("ordreMenu"); // Modification de l'ordre du menu $this->menu->ordonnerMenu($idMenu, $ordreMenu); // Exécution de l'action par défaut pour actualiser le menu $this->executerAction("menuGestionMenuPages"); }

Code : Tout sélectionner

<form method='post' action='eaproduits/ordonnerMenu' class='ordreMenu'> <div class='form-group'> <dl id='sortable'>"; <?php foreach ($array2 as $row) { $idMenu2 = $row['idMenu']; $idParentMenu2 = $row['idParent']; $libelleMenu2 = $row['libelle']; $ordreMenu2 = $row['ordre']; if ($idParentMenu2 == $idMenu1 ) { ?> <dt> <div id='menu-wrapper'> <div id='menu-item'> <span class='$icon_ordre'></span> </div> <p id='menu-text'> <?= $libelleMenu2 ?> </p> <p id='menu-ordre'> <?= $ordreMenu2 ?> <input type='hidden' name='idMenu' value="<?= $idMenu2 ?>"> <input type='hidden' name='ordreMenu' value="<?= $ordreMenu2 ?>"> </p> </div> </dt> <?php }} ?> </dl> </div> <div class='form-button'> <button type='submit' class='btn btn-dark'> Mettre à jour</button> </div> </form>
J'essaie de sérialiser les nouvelles positions quand l'utilisateur clique sur le bouton Mettre à jour ... mais je reste bloqué!!

Quelqu'un a-t-il une idée?

Merci,

Petit nouveau ! | 3 Messages

28 sept. 2015, 15:44

J'ai déjà un problème au niveau du serialize ... Il n'arrive pas à matcher mon incrémentation !!!

Code : Tout sélectionner

$(document).ready(function() { for (j=0;j<1000;j++) { $( "#sortable" + j ).sortable({ placeholder: "highlight", revert: true, tolerance: "pointer", update: function() { var newOrder = $( "#sortable" + j ).sortable('serialize'); alert(newOrder); } }); $( "#sortable" + j ).disableSelection(); } });

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 oct. 2015, 15:34

salut,

pour le js le "j" dans la call back d'update peu poser problème sachant que ce sera exécuté après (plus tard) que l’exécution du code de génération (sur le onload).

Pour le reste c'est trop vague pour être compréhensible désolé.

@+
Il en faut peu pour être heureux ......