Php Laravel DataTables多选复选框

Php Laravel DataTables多选复选框,php,mysql,laravel,checkbox,datatables,Php,Mysql,Laravel,Checkbox,Datatables,我正在用DataTables在Laravel中开发一个应用程序,在这里我显示Mysql数据库中的数据。如何对每个选择使用线条颜色进行多重选择?与此类似,但有多个选择,如何从所选行获取值而不仅仅是行id,以及如何在单击该行的相应按钮时获取当前行值 最后一列的每个按钮打开一个带有提交按钮的表单,提交功能适用于所有蓝色按钮 这是该应用程序的屏幕截图: 以下是代码: $(document).ready(function() { $('#pdr_table').DataTable({ "proc

我正在用DataTables在Laravel中开发一个应用程序,在这里我显示Mysql数据库中的数据。如何对每个选择使用线条颜色进行多重选择?与此类似,但有多个选择,如何从所选行获取值而不仅仅是行id,以及如何在单击该行的相应按钮时获取当前行值

最后一列的每个按钮打开一个带有提交按钮的表单,提交功能适用于所有蓝色按钮

这是该应用程序的屏幕截图:

以下是代码:

$(document).ready(function() {
 $('#pdr_table').DataTable({
    "processing": true,
    "serverSide": true,
    "ajax": "{{ route('ajaxdata.getdata') }}",
    "columns":[
        { "data": "checkbox", orderable:false, searchable:false},
        { "data": "ID_Piece" },
        { "data": "Designation" },
        { "data": "Status" },
        { "data": "action"}
    ],
    //"order": [[ 0, "asc" ]],
    'rowCallback': function(row, data, index){ 
        if(data.Status == 'Disponible'){ 
            $(row).find('td:eq(3)').css('background-color', 'green').css('color', 'white'); 
        }
        if(data.Status == 'Indisponible'){ 
            $(row).find('td:eq(3)').css('background-color', 'red').css('color', 'white'); 
        } 
    }
 });    

$(document).on('click', '.Ajouter_au_panier', function(){
    $('#pdrModal').modal('show');
    $('#pdr_form')[0].reset();
    $('#form_output').html('');
    $('#piece').text('PDR'); 
});

$(document).on('click', '.pdr_checkbox', function(){//How to color the entire line and get all the values of that line

});

$('#pdr_form').on('submit', function(event){//How to get all the values for the line of that button
    event.preventDefault();
    var form_data = $(this).serialize();
    $.ajax({
        url:"{{ route('ajaxdata.postdata') }}",
        method:"get",
        data:form_data,
        dataType:"json",
        success:function(data)
        {
            if(data.error.length > 0)
            {
                var error_html = '';
                for(var count = 0; count < data.error.length; count++)
                {
                    error_html += '<div class="alert alert-danger">'+data.error[count]+'</div>';
                }
                $('#form_output').html(error_html);
            }
            else
            {                            
                $('#form_output').html(data.success);
                $('#pdr_form')[0].reset();
                $('#pdr_table').DataTable().ajax.reload();
            }
        }
    })
});
控制器:

function getdata()
    {
     $pdrs = Pdrs::select('ID_Piece', 'Designation', 'Status');
     return DataTables::of($pdrs)
            ->addColumn('checkbox', '<input type="checkbox" name="pdr_checkbox[]" class="pdr_checkbox" value="{{$ID_Piece}}" />')
            ->rawColumns(['checkbox','action'])
            ->addColumn('action', function($pdr){
                return '<a href="#" class="btn btn-xs btn-primary Ajouter_au_panier" id="'.$pdr->ID_Piece.'"><i class="glyphicon glyphicon-shopping-cart"></i> Ajouter au panier</a>';})
            ->make(true);            
    }
你可以用

select: {
   style:'multi',
},
如果您不打算使用样式:'multi' 在样式“os”下使用CTRL+Select进行多项选择, 如您提供的链接中的文档所示。

然后,您可以在ajax click函数中的选中复选框上分别执行$。并形成要提交给控制器的数据变量。 此外,请遵循文档的代码

$('#someSubmitButton').on('submit', function(e){
  //Place submit button within the form
  var form = this;
  //Define your dataTable to a variable - here it is table
  var rows_selected = table.column(0).checkboxes.selected();

  // Iterate over all selected checkboxes
  $.each(rows_selected, function(index, rowId){.... Your other code goes 
  here based on how you want to handle.....}

你是如何决定这些颜色的,因为有不同的颜色显示图像?我的意思是当点击复选框时悬停线条只是一种颜色,它可以区分选中的线条和未选中的线条。你没有实现你提供的链接中的任何代码。你需要在你的配置中添加一个select属性。我提供的链接仅供理解。我更新了我的帖子,请看一看。你能提供工作代码$'pdr_table'.DataTable吗{…我正在从控制器手动添加复选框,这段代码对我不起作用。它仍然有效,$。无论您是从控制器加载数据,还是由datatable为您加载数据,每个都不介意。这只是一个脚本,您需要将它放入submit函数中,形成数据变量并传递到ajax函数中。如果您正在生成手动选中复选框,不要引用datatable链接,这对您没有多大帮助。要标记行,您必须调用onclick函数..并更改行背景颜色的css属性。在$'pdr_form'之后。在$'submit'上,functionevent{和$.ajax{之前,以及我如何编写示例项变量