Laravel 将旧值或值传递给模态

Laravel Pass Old or value to modal

看来模态框不太容易大规模实现,我想找到一种替代方法将值传递给模态框,以便正确显示它。

在 blow 示例中,我从 dataTable 本身填充“名称”字段,这很好用,但是如果我想传递示例怎么办

old('name') ?? $document->name

我怎样才能大规模地完成这个,比如说 10 个以上的字段条目?

按钮

<a href="#"><i class="bx bxs-edit text-primary bx-sm edit" title="Edit Document"></i></a>

脚本

<script type="text/javascript">
$(document).ready( function () {
    var table = $('#indextable').DataTable();
    
    //Edit Record
    table.on('click', '.edit', function(){
       $tr = $(this).closest('tr');
       if ($($tr).hasClass('child')){
           $tr = $tr.prev('.parent');
       }
        //Config Table
        var data = table.row($tr).data();
        $('#name').val(data[1]);
        
        $('#editForm').attr('action', '/virtual/documents/'+data[0]);
        $('#editModal').modal('show');
    });
    
    $("#editForm").submit(function () {
        $(".submit").attr("disabled", true);
            return true;
    });
});

@if (count($errors) > 0)
    $('#editModal').modal('show');
@endif
</script>

这是有意义的解决方案。

步骤 1) 在按钮中添加一个数据-###,它必须在指定标题之前。

<a href="#"><i class="bx bxs-edit text-primary bx-sm edit" data-name="{{old('name') ?? $document->name}} " title="Edit Document"></i></a>

Step 2) 在脚本中,你可以用例子“$(this).data('name');”

抓取数据
<script type="text/javascript">
$(document).ready( function () {
    //Getting the datatable ready
    var table = $('#indextable').DataTable();
    //if the edit button is clicked
    table.on('click', '.edit', function(){
        var nameData = $(this).data('name');
        $("#name").val(nameData);
        $('#editModal').modal('show');
    });
});
//On error keep the modal open
@if (count($errors) > 0)
    $('#editModal').modal('show');
@endif
</script>

另一种选择是刷新会话,例如;

//On error keep the modal open
@if (count($errors) > 0)
    {{ Session::reflash()}}
    $('#editModal').modal('show');
@endif

然后您可以在模态视图中使用标准 old('value') 语法。