如何将 crud 表中的行值传递给自定义提交按钮

Posted

技术标签:

【中文标题】如何将 crud 表中的行值传递给自定义提交按钮【英文标题】:How do I pass the value of the rows from the crud table to the custom submit button 【发布时间】:2020-04-02 05:38:11 【问题描述】:

这是我已经实现并从另一个 crud 控制器获取数据的选项卡

我尝试使用批量操作来选择行并将行的值传递给自定义按钮 但是我做不到

我也尝试过使用 j 查询,但效果不佳

 $(document).ready(function ()   


    //    var table = $('#crudtable').DataTable(
    //       'data': userData,  
    //       'columnDefs': [
    //          'targets': 0,
    //          'searchable':false,
    //          'orderable':false,
    //          'className': 'dt-body-center',


    //    );


    //    $('.crud_bulk_actions_row_checkbox').on('click', function()
    //       // Check/uncheck all checkboxes in the table
    //       var rows = table.rows( 'search': 'applied' ).nodes();
    //       $('.crud_bulk_actions_row_checkbox', rows).prop('checked', this.checked);
    //    );


    //    $('#crudtable tbody').on('change', ''.crud_bulk_actions_row_checkbox', function()
    //       // If checkbox is not checked
    //       if(!this.checked)
    //          var el = $('#example-select-all').get(0);

    //          if(el && el.checked && ('indeterminate' in el))

    //             el.indeterminate = true;
    //          
    //       
    //    );

    //    $('#crudtable').on('#button3', function(e)
    //       var form = this;

    //       // Iterate over all checkboxes in the table
    //       table.$('.crud_bulk_actions_row_checkbox').each(function()
    //          // If checkbox doesn't exist in DOM
    //          if(!$.contains(document, this))
    //             // If checkbox is checked
    //             if(this.checked)
    //                // Create a hidden element 
    //                $(form).append(
    //                   $('<input>')

    //                      .attr('name', this.name)
    //                      .val(this.value)
    //                );
    //             
    //           
    //       );



    // );
    // ";

【问题讨论】:

可以分享控制器类吗?并解释清楚你想做什么? 【参考方案1】:

要了解自定义按钮在 Backpack 中的工作原理,请查看 button docs。

如果您要创建一个批量按钮(您可以在其中选择多行并对所有行执行操作),我建议您从 "bulk clone" button code 开始您的按钮 - 这是一个简单批量按钮的一个很好的例子,只是一个确认对话框和一个 AJAX 调用。

您的自定义按钮必须遵循背包批量按钮的结构:


    @if ($crud->hasAccess('bulkClone') && $crud->get('list.bulkActions'))
        <a href="javascript:void(0)" onclick="bulkCloneEntries(this)" class="btn btn-sm btn-secondary bulk-button"><i class="fa fa-clone"></i> Clone</a>
    @endif

    @push('after_scripts')
    <script>
        if (typeof bulkCloneEntries != 'function') 
          function bulkCloneEntries(button) 
              if (typeof crud.checkedItems === 'undefined' || crud.checkedItems.length == 0)
               alert('No items selected'); return; 

              // your logic here
          
    </script>
    @endpush

注意:

按钮调用自定义函数onClick; 该函数被推送到“after_scripts”刀片部分;

【讨论】:

非常感谢@tabacitu

以上是关于如何将 crud 表中的行值传递给自定义提交按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何将 googleMapController 传递给自定义小部件? (扑)

如何将 dplyr 中的动态列名传递给自定义函数?

Mysql根据不同的行更新表中的行值

如何将道具传递到反应表中的行

可以使用表中的行值在加载时动态构建组合框吗?

Spring Batch:如何将 jobParameters 传递给自定义 bean?