L'interface utilisateur de jQuery sortable
La fonction comprend un serialize
método pour faire ça. C'est assez simple, en fait. Voici un exemple rapide qui envoie les données à l'URL spécifiée dès qu'un élément a changé de position.
$('#element').sortable({
axis: 'y',
update: function (event, ui) {
var data = $(this).sortable('serialize');
// POST to server using $.post or $.ajax
$.ajax({
data: data,
type: 'POST',
url: '/your/url/here'
});
}
});
Ce que cela fait, c'est qu'il crée un tableau des éléments en utilisant les éléments id
. Donc, je fais habituellement quelque chose comme ça :
<ul id="sortable">
<li id="item-1"></li>
<li id="item-2"></li>
...
</ul>
Lorsque vous utilisez le serialize
il créera une chaîne de requête POST comme ceci : item[]=1&item[]=2
etc. Ainsi, si vous utilisez, par exemple, les identifiants de votre base de données dans l'onglet id
vous pouvez alors simplement itérer dans le tableau POSTed et mettre à jour la position des éléments en conséquence.
Par exemple, en PHP :
$i = 0;
foreach ($_POST['item'] as $value) {
// Execute statement:
// UPDATE [Table] SET [Position] = $i WHERE [EntityId] = $value
$i++;
}
Exemple sur jsFiddle.
4 votes
toArray
donnerait une chaîne d'identifiants triés, je pense que cela pourrait être utile. api.jqueryui.com/sortable/#method-toArray1 votes
Avez-vous résolu votre problème ?
1 votes
Ceci peut vous aider codingbin.com/reorder-with-php-mysql-and-jquery-sortable
0 votes
D'une certaine manière, les questions de ce genre sont les meilleures de la SO. Cependant, cette question serait écrasée en 2020.