Потребителският интерфейс на jQuery sortable
функция включва serialize
метод
да го направя. Много е просто, наистина. Ето един бърз пример, който изпраща данните до посочения URL, веднага щом елемент промени позицията.
$('#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'
});
}
});
Това, което прави, е, че създава масив от елементи, използвайки елементите id
. Така че обикновено правя нещо подобно:
<ul id="sortable">
<li id="item-1"></li>
<li id="item-2"></li>
...
</ul>
Когато използвате serialize
опция, той ще създаде POST низ за заявка като този:item[]=1&item[]=2
и т.н. Така че, ако използвате - например - идентификаторите на вашата база данни в id
след това можете просто да преминете през POSTed масива и да актуализирате позициите на елементите съответно.
Например в PHP:
$i = 0;
foreach ($_POST['item'] as $value) {
// Execute statement:
// UPDATE [Table] SET [Position] = $i WHERE [EntityId] = $value
$i++;
}