js:
$('#sortable').sortable({
stop: function(event, ui) {
saveContentOrder();
}
});
function saveContentOrder()
{
const idsInOrder = $("#sortable").sortable("toArray");
var data = {
idsInOrder:idsInOrder
};
$.ajax({
type: "POST",
url: "/xxx/yyy/zzz",
data: data
}).done( function() {
}).fail(function() {
});
}
index.blade.php:
<tbody id="sortable" >
@foreach ($references as $index => $reference)
<tr id="reference_id_{{$reference->id}}">
<td width="65%">
<a href="{{ route('admin.reference.edit', $reference->id ) }}"><b>{{ $reference->title }}</b>
</a><br>
</td>
<td>
@if(!count($reference->images))<span style="color:#ff0000;font-weight:700;">0</span>@else{{ count($reference->images) }}@endif
</td>
<td>
{{ $reference->priority }}
мой веб-маршрут:
Route::post('/xxx/yyy/zzz', 'AdminReferenceController@reorder');
мой контроллер:
public function reorder(Request $request)
{
$order = $request->get('idsInOrder',[]);
if (is_array($order))
{
foreach($order as $position => $idName)
{
$id = str_replace("reference_id_","",$idName);
$gesamt = Reference::all()->count();
$c = \App\Reference::find($id);
if($c)
{
$c->priority = $gesamt-$position;
$c->save();
}
}
}
когда я на своей первой странице, он сохраняет изменение позиции и приоритета, которое я перетаскиваю. Но когда я, например, перехожу на вторую страницу и перетаскиваю порядок, ему присваивается тот же приоритет, что и на странице 1.означает, что он сначала думает, что должен быть 20-м или 30-м.я в основном хочу, чтобы это было в правильном порядке все время.У меня есть шоу 10, шоу 30 и шоу 100. Когда я, например, добираюсь до шоу 30, и у меня нет страниц, так как у меня сейчас не так много записей, это работает без проблем.но как только я показываю 10 и получаю 3 страницы, приоритет смешивается.как я могу это исправить