I\'m using jQueryUI to create a sortable list, and the UI part works great in that I can sort the items as desired on the web page. I can\'t figure out, though, how the order o
Another option is to just have a hidden input form field with the ID value for the item as the value and the same name. Then submit the form after sorting stops. The values will all be available in the posted data in the order they were after the sort.
I do something like this:
$(".sortable").each(function () {
$(this).sortable({
update: function (event, ui) {
$(this).closest("form").trigger("onsubmit");
}
});
});
And the form looks like this:
<form ...>
<ul class="sortable">
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Some info here<input id="id_name" name="id_name" type="hidden" value="1" /></li>
<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Some more info<input id="id_name" name="id_name" type="hidden" value="2" /></li>
</ul>
</form>
You can use the method .serialize
on your sortable object : http://docs.jquery.com/UI/Sortable#method-serialize
$( "#sortable" ).sortable('serialize')
will give you an ajax submittable array of items. Just assign it to an input box if you are not using ajax. Or simply pass it into your data array if using ajax
EDIT Example here : http://jsfiddle.net/jomanlk/KeAer/2/
As the jquery docs note, for this to work your elements need to have ids in the form of set_number
(e.g. rank_1, rank_2). So I've modified your HTML
Just remove the return false
in the form and the serialized value will be set to the input box on form submission