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>
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>
Share
Improve this question
edited Sep 19, 2012 at 13:15
Asciiom
9,9757 gold badges41 silver badges59 bronze badges
asked Sep 19, 2012 at 13:02
Abi XalmonAbi Xalmon
1011 gold badge1 silver badge4 bronze badges
1
- 1 I think these links will help you :) davidwalsh.name/demo/drag-drop-sort-save-jquery.php davidwalsh.name/mootools-drag-ajax – Vineesh K S Commented Feb 9, 2013 at 10:31
2 Answers
Reset to default 13When 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
.