【问题标题】:why Button onclick didnt work on datatables serverside ? Laravel 6为什么 Button onclick 在数据表服务器端不起作用?拉拉维尔 6
【发布时间】:2020-03-02 11:06:24
【问题描述】:

我的表上有删除功能(使用数据表)这个删除工作正常,但我想在我的删除上添加一些弹出警报,如“onclick”,但它在我的按钮上不起作用

 public function indexDataTables_pns()
{

    $pns = Data_pns::with('users','master_golongan','master_jabatan')->get();


    return Datatables::of($pns)->addIndexColumn()

    ->addColumn('Nama', function ($pns) {
        return '<a href="/pns/'.$pns->id.'" target="_blank">'.$pns->users->nama.'</a>';   
    })
    ->editColumn('edit', function ($pns) {
        return '<a href="/edit_pns/'.$pns->id.'" target="_blank" class="btn btn-xs btn-success"><i class="glyphicon glyphicon-edit"></i></a>';
    })
    ->editColumn('hapus', function ($pns) {

        $c = csrf_field();
        $m = method_field('DELETE');

    return "<form action='/delete/$pns->id' method='POST')>
            $c
            $m

            <button style='margin-left:10px; width: 30px;' type='submit'
                class='btn btn-xs btn-danger delete' onclick='return 
                confirm('do you want to delete this data ?')'>
                <i class='glyphicon glyphicon-remove-circle'></i>
            </button>
        </form>";
    })
    ->rawColumns(['Nama' => 'Nama','hapus' => 'hapus','action' => 'action','edit'=>'edit'])
    ->make(true);

}

没有用

我正在尝试添加课程

<form action='/delete/$pns->id' method='POST' class='delete-form'>

并添加此脚本

<script>
$('.delete-form').submit(function(event){
    if(!confirm('Anda yakin mau menghapus item ini ?')){
        event.preventDefault();
    }
});

但仍然没有工作。我把它放在我的视野下。

我尝试像这样添加 onsubmit

<form onsubmit='return confirm('Anda yakin mau menghapus item ini ?')'>

仍然没有工作,我来自这个线程this link,但我没有找到答案..

看看这个image

有人可以帮我吗?


更新

我尝试添加这个表单类

return "<form action='/delete/$pns->id' method='POST' class='delete-form')>

单击此删除按钮后会显示此弹出窗口,但此消息为空/空,

 @push('scripts')
  <script>
    $(function() {
        $('#table').DataTable({
            processing: true,
            serverSide: true,
            responsive: true,
            ajax: '{!! route('d_pns') !!}',
            columns: [
                { data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false,searchable: false},
                { data: 'Nama', name: 'Nama'},
                { data: 'NIP_lama', name: 'NIP_lama'},
                { data: 'NIP_baru', name: 'NIP_baru'},
                { data: 'TMT_CPNS', name: 'TMT_CPNS'},
                { data: 'TMT_PNS', name: 'TMT_PNS'},
                { data: 'TMT_gol_ruang', name: 'TMT_gol_ruang'},
                { data: 'master_golongan.golongan', name: 'master_golongan.golongan'},
                { data: 'master_jabatan.nama_jabatan', name: 'master_jabatan.nama_jabatan'},
                { data: 'edit', name: 'edit', orderable: false, searchable: false},
                { data: 'hapus', name: 'hapus', orderable: false, searchable: false},

            ],
        });
    })
    $('.delete-form').submit(function(event){
      if(!confirm('Anda yakin mau menghapus item ini ?')){
          event.preventDefault();
      }
  });
</script>

@endpush

为什么这个确认消息是空的?

【问题讨论】:

    标签: javascript laravel


    【解决方案1】:

    我将为任何需要知道如何从 laravel yajra 服务器端使用 onclick 的人放弃这个。

    $datatable = datatables()->collection($data)
         ->addColumn('action', function($data){
                    $button = '
                        <button type="button" data-security="'.$data->security.'" class="btn btn-warning btn-sm" onclick="OrderTicket(\''.$data->security.'\')">Sell
                        </button>&nbsp;
                        <button type="button" data-security="'.$data->security.'" class="btn btn-info btn-sm" onclick="createRequest(\''.$data->security.'\')">Buy
                        </button>
                    ';
        
                    return $button;
                })
        ->rawColumns(['action'])
        ->addIndexColumn()
        ->make(true);
    
        return $datatable;
    

    你所要做的就是转义字符串onclick="OrderTicket(\''.$data-&gt;security.'\')"

    【讨论】:

      【解决方案2】:

      解决了

      需要补充

       <script type="text/javascript">
        function confirm_delete() {
          return confirm('Apakah anda yakin untuk menghapus data ini ? ');
        }
      </script>
      

      并添加onclick return confirm_delete()

      【讨论】:

        【解决方案3】:

        您的第一次尝试问题似乎是转义引号“和”。尝试将您的消息放在双引号“”内。这应该可以解决您的问题

        <button style='margin-left:10px; width: 30px;' type='submit'
                    class='btn btn-xs btn-danger delete' onclick='return 
                    confirm("do you want to delete this data ?")'>
                    <i class='glyphicon glyphicon-remove-circle'></i>
                </button>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-02-04
          • 2017-02-23
          • 1970-01-01
          • 2016-03-19
          • 2017-09-02
          • 1970-01-01
          • 2019-04-13
          相关资源
          最近更新 更多