如何解决Laravel Ajax 可排序?
使用 jquery ui 实现排序。当移动一个元素时,其余元素的位置会自动更新。用代码告诉我,这样当你移动一个元素时,只有它的位置发生变化 刀片
<ol id="slippylist">
<ul class="sortable-ul">
@foreach($contents as $content)
<li class="demo-no-swipe" aria-role="option" tabindex="-1" data-link-id="{{ $content->content_id }}"><span class="instant">@if($content->content_type == '1') Текстовый блок @elseif($content->content_type == '2') Ссылка @elseif($content->content_type == '3') Вопросы и ответы @elseif($content->content_type == '4') Аватарка @elseif($content->content_type == '5') Соц.сети @elseif($content->content_type == '6') Видео @elseif($content->content_type == '7') Карта @elseif($content->content_type == '8') Страница @endif</span><button class="btn btn-w-md btn-shadow btn-primary mr-3 mb-5">Изменить</button></li>
<input type="hidden" name="content[sort][]" value="{{ $content->content_id }}">
@endforeach
</ul>
</ol>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script>
$('.sortable-ul').sortable({
stop: function() {
$.ajax({
url: '{{ route('sortable') }}',method: 'POST',headers: {
'X-CSRF-Token': $('Meta[name="csrf-token"]').attr('content')
},data: $('.sortable-ul input').serialize()
});
}
});
</script>
控制器
public function sortable(Request $request) {
$user = Auth::user();
$shop = Shop::where('user_id',$user->id)->first();
$i = 1;
foreach($request->input('content.sort') as $order){
$content = Content::where('shop_id',$shop->shop_id)->where('content_id',$order)->update(['content_position' => $i]);
$i++;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。