Images are loaded from Database. I would like to sort the image order using JQuery-UI sortable and save the data on form submit.
<script type="text/javascript">
$(function() {
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
cursor: 'crosshair'
});
$( "#sortable" ).disableSelection();
});
</script>
<form action="" method="post">
<ul id="sortable" style="width: 524px;">
<li id="00001" class="ui-state-default"><img src="00001.jpg" width="100" height="90" /></li>
<li id="00002" class="ui-state-default"><img src="00002.jpg" width="100" height="90" /></li>
<li id="00003" class="ui-state-default"><img src="00003.jpg" width="100" height="90" /></li>
<li id="00003" class="ui-state-default"><img src="00004.jpg" width="100" height="90" /></li>
</ul>
<div style="clear:both;"></div>
<input name="Submit" value="RE-ORDER" type="submit" />
</form>
When you sort each time, update the values to a hidden input field using update: function(){}
in sortable. Here is my code which updates the hidden input when you sort each time. When form is submitted, the values will sent to server.
<form action="" method="post">
<input type="hidden" id="image_order" name="image_order" value="" />
<ul id="sortable" style="width: 524px;">
<li id="00001" class="ui-state-default"><img src="00001.jpg" width="100" height="90" /></li>
<li id="00002" class="ui-state-default"><img src="00002.jpg" width="100" height="90" /></li>
<li id="00003" class="ui-state-default"><img src="00003.jpg" width="100" height="90" /></li>
<li id="00003" class="ui-state-default"><img src="00004.jpg" width="100" height="90" /></li>
</ul>
<div style="clear:both;"></div>
<input name="Submit" value="RE-ORDER" type="submit" />
</form>
$(function() {
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
cursor: 'crosshair',
update: function(event, ui) {
var order = $("#sortable").sortable("toArray");
$('#image_order').val(order.join(","));
alert($('#image_order').val());
}
});
$( "#sortable" ).disableSelection();
});
Here is the demo.
here is a basic solution as per my thinking
create a hidden input and store its order into it.
<script type="text/javascript">
$(function() {
$( "#sortable" ).sortable({
placeholder: "ui-state-highlight",
cursor: 'crosshair',
update: function(event, ui) {
var Order = $("#sortable").sortable('toArray').toString();
$('#order').val(Order);
}
});
$( "#sortable" ).disableSelection();
});
</script>
<form action="" method="post">
<ul id="sortable" style="width: 524px;">
<li id="00001" class="ui-state-default"><img src="00001.jpg" width="100" height="90" /></li>
<li id="00002" class="ui-state-default"><img src="00002.jpg" width="100" height="90" /></li>
<li id="00003" class="ui-state-default"><img src="00003.jpg" width="100" height="90" /></li>
<li id="00003" class="ui-state-default"><img src="00004.jpg" width="100" height="90" /></li>
</ul>
<div style="clear:both;"></div>
<input name="order" type="hidden" />
<input name="Submit" value="RE-ORDER" type="submit" />
</form>
now you can get order from order
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With