【问题标题】:Laravel 7 Ajax Datatables get data updateLaravel 7 Ajax 数据表获取数据更新
【发布时间】:2020-10-21 13:45:36
【问题描述】:

我有一个问题让我卡了几天。 我使用 laravel 7 和 jax,以及 yajra 数据表,我想进行页面编辑,通过数据库中的 id 显示数据。 在此之前,我使用弹出模式来创建和编辑数据,但为此我想创建另一个页面来创建和编辑,所以我会像这样定向到另一个页面 “/pegawai/edit/{{ $p->pegawai_id }}”。因此,当我单击按钮编辑时,可以直接进行页面编辑。 对于页面创建和功能删除是可以的,但我坚持编辑。

这是我的控制器来获取列表

public function getList(Request $request){
    $data = Cms::all();
    $canEdit = Auth::user()->can($this->permissions["edit"]);
    $canDelete = Auth::user()->can($this->permissions["delete"]);
    return Datatables::of($data)
            ->addIndexColumn()
            ->addColumn('action', function($row)use($canEdit,$canDelete){
                $btn = '';
                $canEdit ? $btn .= "<a href='/console/cms/editData'>
                <button 
                type = 'button' 
                class = 'btn btn-warning btn-sm'
                onclick = 'editData(this)'
                idData = '".$row->id."'
                title = '".$row->title."'
                slug = '".$row->slug."'
                meta_title = '".$row->meta_title."'
                meta_desc = '".$row->meta_desc."'
                description = '".$row->description."'
                >Edit</button></a>":'';
                
                
                $canDelete ? $btn .= '<button 
                type = "button" 
                class = "btn btn-danger btn-sm"
                onclick = "deleteData(this)" 
                idData = "'.$row->id.'" 
                >Delete</button>
                ':"";
                return $btn;
            })
            ->rawColumns(['action'])
            ->make(true);
}

刀片上的这个功能

function editData(attribute){
    resetError();
    resetForm();

    var id = $(attribute).attr('idData');
    var title = $(attribute).attr('title');
    var slug = $(attribute).attr('slug');
    var meta_title = $(attribute).attr('meta_title');
    var meta_desc = $(attribute).attr('meta_desc');
    var content = $(attribute).attr('description');
    tinymce.get("description").setContent(content);
    var cms_file = $(attribute).attr('cms_file');

    $("#id").val(id);
    $("#title").val(title);
    $("#slug").val(slug);
    $("#meta_title").val(meta_title);
    $("#meta_desc").val(meta_desc);
    $('#description').val(description);
    $('#cms_file').val(cms_file);
}

【问题讨论】:

    标签: javascript ajax laravel datatables


    【解决方案1】:

    如果您使用的是 jquery,则需要从正文添加事件委托,因为该元素来自 ajax。也许使用

    $('body').on('click','.yourBtnClassname',function(e){
    
    
    });
    

    see this Image

    【讨论】:

    • 发布数据成功,但我的问题是通过 id 获取数据以显示在编辑页面上
    • 需要通过$(this).data('id');获取id;
    【解决方案2】:

    使用下面的代码:

    $canEdit ? $btn .= "<a href='/pegawai/edit/".rawurlencode($row->id)."' class='btn btn-warning btn-sm'>Edit</a>";
    

    【讨论】:

    • 我已经用这个 $canEdit 解决了这个问题? $btn .= "。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-05
    相关资源
    最近更新 更多