Je souhaite utiliser la sortable
fonction jQuery UI pour permettre aux utilisateurs de définir une commande puis, en cas de modification, de l'écrire dans la base de données et de la mettre à jour. Quelqu'un peut-il écrire un exemple sur la façon dont cela serait fait?
125
toArray
donnerait une chaîne d'identifiants triés, je pense que cela pourrait être utile. api.jqueryui.com/sortable/#method-toArrayRéponses:
La fonctionnalité jQuery UI
sortable
inclut uneserialize
méthode pour ce faire. C'est assez simple, vraiment. Voici un exemple rapide qui envoie les données à l'URL spécifiée dès qu'un élément change de position.Cela crée un tableau des éléments en utilisant les éléments
id
. Donc, je fais généralement quelque chose comme ça:Lorsque vous utilisez l'
serialize
option, cela créera une chaîne de requête POST comme celle-ci:item[]=1&item[]=2
etc. Donc, si vous utilisez - par exemple - vos ID de base de données dans l'id
attribut, vous pouvez alors simplement parcourir le tableau POSTed et mettre à jour les positions des éléments en conséquence .Par exemple, en PHP:
Exemple sur jsFiddle.
la source
$("#element").children().uniqueId().end().sortable({...
J'ai pensé que cela pourrait également aider. A) il a été conçu pour maintenir la charge utile à son minimum lors du renvoi au serveur, après chaque tri. (au lieu d'envoyer tous les éléments à chaque fois ou d'itérer à travers de nombreux éléments que le serveur pourrait rejeter) B) J'avais besoin de renvoyer un identifiant personnalisé sans compromettre l'identifiant / le nom de l'élément. Ce code obtiendra la liste du serveur asp.net, puis lors du tri, seules 2 valeurs seront renvoyées: l'id de base de données de l'élément trié et l'id de base de données de l'élément à côté duquel il a été déposé. Sur la base de ces 2 valeurs, le serveur peut facilement identifier la nouvelle position.
la source
Vous avez de la chance, j'utilise la chose exacte dans mon CMS
Lorsque vous souhaitez stocker la commande, appelez simplement la méthode JavaScript
saveOrder()
. Il fera unePOST
requête AJAX à saveorder.php, mais bien sûr, vous pouvez toujours le poster sous forme régulière.Dans saveorder.php; N'oubliez pas que j'ai supprimé toutes les vérifications et vérifications.
la source
Ceci est mon exemple.
https://github.com/luisnicg/jQuery-Sortable-and-PHP
Vous devez attraper la commande dans l'événement de mise à jour
la source
Je peux changer les lignes en suivant la réponse acceptée et l'exemple associé sur jsFiddle. Mais pour des raisons inconnues, je n'ai pas pu obtenir les identifiants après les actions "arrêter ou modifier". Mais l'exemple publié dans la page JQuery UI fonctionne très bien pour moi. Vous pouvez vérifier ce lien ici.
la source
Essayez avec cette solution: http://phppot.com/php/sorting-mysql-row-order-using-jquery/ où la nouvelle commande est enregistrée dans un élément HMTL. Ensuite, vous soumettez le formulaire avec ces données à un script PHP, et le parcourez avec la boucle for.
Remarque: j'ai dû ajouter un autre champ db de type INT (11) qui est mis à jour (horodaté) à chaque itération - il sert au script de savoir quelle ligne est récemment mise à jour, sinon vous vous retrouvez avec des résultats brouillés.
la source