如何为 Jquery-Sortable 分隔 UUid

How To Separate UUids For Jquery-Sortable

我想为我的 larave 项目使用 jquery-ui sortable 方法。当我用 id 分隔 <tr> 行时,没有问题。

示例;

<tr id="item-1">

但是如果我想使用 uuids 而不是 id,我的 tr 行会变成这样:

<tr id="item-b20s0b82-dc01-4e9a-a7a6-cd60ff5f9165">

所以,如果我尝试这样使用,它会给我错误。我使用“-”来分隔,但 uuids 也有“-”

我该如何解决这个问题? 谢谢...

更新:

index.blade 我的一部分 table(试图整理table)

<tbody id="sortable">
                @foreach($data['blogs'] as $blogs)
                    <tr id="item-{{$blogs->id}}">
                        <td>{{$loop->iteration}}</td>
                        <td><img width="100" src="/images/blogs/{{$blogs->blogs_file}}" alt=""></td>
                        <td class="sortable">{{$blogs->blogs_title}}</td>
                        <td>{{Illuminate\Support\Str::limit($blogs->blogs_content, 15)}}</td>
                        <td align="center" width="20">
                            <a href="#"><i
                                    class="fa fa-pencil-square"></i></a>
                        </td>
                        <td align="center" width="20">
                            <a href="javascript:void(0)"><i id="{{$blogs->uuid}}"
                                                            class="fa fa-trash-o"></i></a>
                        </td>
                    </tr>
                @endforeach
                </tbody>

jquery :

$(function () {
            $.ajaxSetup({
                headers: {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $('#sortable').sortable({
                revert: true,
                handle: ".sortable",
                stop: function (event, ui) {
                    var data = $(this).sortable('serialize');
                    $.ajax({
                        type: "POST",
                        data: data,
                        url: "{{route('blogs.Sortable')}}",
                        success: function (msg) {

                            if (msg) {
                                alertify.success('İşlem Başarılı');
                            } else {
                                alertify.error('İşlem Başarısız');
                            }
                        }
                    });
                }
            });
            $('#sortable').disableSelection();
        });

博客控制器:

public function sortable()
    {
        foreach ($_POST['item'] as $key => $value) {
            $blogs = Blogs::find(intval($value));
            $blogs->blogs_must = intval($key);
            $blogs->save();
        }
        echo true;
    }

在这种用法中,它工作得很好。但是当我改变 <tr id="item-{{$blogs->id}}">

<tr id="item-{{$blogs->uuid}}">

它失败了。

更新:我终于想通了 out.The 这部分的问题:

var data = $(this).sortable('serialize');

所以如果我想使用 UUID 而不是 ID,我应该这样做:

在表体中;

id="item_{{$blogs->uuid}}"

比我的 Jquery 代码:

var data = $(this).sortable('serialize',{expression: /(.+)_(.+)/ });

大功告成。