您好我正在使用jquery ui sortable
对我的div进行排序。我可以得到保存在数据库中的div,这是我的代码
<div style="margin:0 auto !important;">
<ul id="sortable1" class="connectedSortable">
<li id="one_1" class="ui-state-default"><div>Item 1</div></li>
<li id="one_2" class="ui-state-default"><div>Item 2</div></li>
<li id="one_3" class="ui-state-default"><div>Item 3</div></li>
<li id="one_4" class="ui-state-default"><div>Item 4</div></li>
<li id="one_5" class="ui-state-default"><div>Item 5</div></li>
</ul>
<ul id="sortable2" class="connectedSortable">
<li id="two_1" class="ui-state-highlight"><div>Item 1</div></li>
<li id="two_2" class="ui-state-highlight"><div>Item 2</div></li>
<li id="two_3" class="ui-state-highlight"><div>Item 3</div></li>
<li id="two_4" class="ui-state-highlight"><div>Item 4</div></li>
<li id="two_5" class="ui-state-highlight"><div>Item 5</div></li>
</ul>
</div>
<script type="text/javascript">
jQuery(function() {
var sortable1 = 'one_1,one_2,one_3,one_4,one_5';
var sortable2 = 'two_1,two_2,two_3,two_4,two_5';
jQuery( "#sortable1, #sortable2" ).sortable({
update: function(event, ui) {
var newOrder = jQuery(this).sortable('toArray').toString();
if(jQuery(this).attr('id')=="sortable1"){
sortable1 = newOrder;
}
else {
sortable2 = newOrder;
}
console.log(sortable1);
console.log(sortable2);
}
}).disableSelection();
});
</script>
我可以正确地将已排序的div顺序保存到DB,但我不知道如何填充div以再次更正顺序。请帮我 。提前谢谢。
答案 0 :(得分:1)
不是将排序顺序保存为数据库,而是以逗号分隔值1,2,3,4,5
为例,为什么不直接保存“排序列”,例如#sortable1
这样当你加载div时,你只需将这个值传递给你的js逻辑。
示例:
如果您在数据库中保存排序列名称#sortable1
或#sortableN
,那么您最终会
var newOrder = jQuery(this).sortable('toArray').toString();
if(jQuery(this).attr('id')== "<% $your_php_variable %>"){
sortable1 = newOrder;
}
else {
sortable2 = newOrder;
}
我不确定你是如何将php变量传递给我所用的<% $your_php_variable %>
的UI。在您的PHP代码中的某些时候,您将设置$your_php_variable = '#sortableX';