我最终试图将列表的顺序保存到我的数据库中,我目前遇到的问题是 Jquery 在移动项目时没有收到传入的 id。
这是我的 html:
<ul id="playlist">
@foreach (Playlist::find(1)->songs as $song)
<li class="ui-state-default ui-sortable-handle" data-id="{{ $song->position }}"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>{{$song->songname}}.</li>
@endforeach
</ul>
这是我的JavaScript
$(函数() {$('#playlist').sortable().bind('sortupdate', function(e, ui) {
var id = $('ul.sortable li').map(function(){
return $(this).data("id");
}).get();
$.ajax({
type: "POST",
url: "api-ch-order",
dataType: "json",
data: {id: id},
success: function(order){
console.log(id)
}
});
});});
这是我的控制器,我必须测试它:
if(Request::ajax()){
$id = Input::get('id');
printf($id + "HEYYY");
}
事情是目前在Chrome和Firefox上查看控制台console.log(id) 返回一个空数组,即没有传递任何信息,这是为什么?
我认为,您用于应用此功能的方法不正确。 id attr 必须是数组而不是整数。可能是它可以通过更改实现方法来工作....请参阅 https://stackoverflow.com/a/15635201/1728836 与挽歌示例。