mysql - Laravel Datatables ajax无法发送参数进行查询

标签 mysql ajax laravel datatables

我正在使用 Laravel 数据表。我成功地通过查询从 MySQL 数据库加载数据。 我遇到的问题是能够通过发送月份编号来按月查询表。我无法成功将包含月份号的参数发送到后端的 ajax 函数。 我尝试了很多变体,但没有任何效果。

我得到“未定义索引:月份”

这是我的代码片段:

Javascript ajax:

<script>
    $(function() {
        var month = "<?= $brandData['month'] ?>"; // contains a month number
        $('#accounts').DataTable({
            processing: true,
            serverSide: true,
            type: "POST",
            ajax: '{!! url('brand_ajax') !!}',
            data : {'month' :  month },
            columns: [
                { data: 'brand_name', name: 'brand_name' , className: 'text-xl-left'},
                { data: 'brand_volume', name: 'brand_volume', className: 'text-xl-right' },
                { data: 'brand_margin', name: 'brand_margin' , className: 'text-xl-right'},
                { data: 'brand_commission', name: 'brand_commission', className: 'text-xl-right' },
            ]
        });
    });
</script>

这是我的ajax函数返回数据

public function brand_ajax()
{
 $month = $_POST["month"];
    $brands = SaleInvoice::select(DB::raw('brands.name as brand_name,
                avg(NULLIF(margin,0)) as brand_margin,
                sum(commission) as brand_commission,
                sum(amt_invoiced) as brand_volume
                '))
        ->join('brands', 'brands.ext_id', '=', 'saleinvoices.brand_id')
        ->where('brands.is_active', '=', true)
        //                 ->whereRaw('MONTH(saleinvoices.invoice_date) = ?', (11))
        ->whereRaw('MONTH(saleinvoices.invoice_date) = ?', ($month))
        ->having('brand_volume', '>', 0)
        ->groupBy('brands.name')
        ->get();


    return DataTables::of($brands)
        ->editColumn('brand_commission', function ($brand) {
            return number_format($brand->brand_commission, 2);
        })
        ->editColumn('brand_margin', function ($brand) {
            return number_format($brand->brand_margin, 2);
        })
        ->editColumn('brand_volume', function ($brand) {
            return number_format($brand->brand_volume, 2);
        })
        ->make(true);
}

最佳答案

我自己解决了。我刚刚将参数添加到 URL 字符串中。

url('brand_ajax/' . $month)

关于mysql - Laravel Datatables ajax无法发送参数进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54837148/

相关文章:

php - 每行中的编辑按钮应根据设备名称执行代码

ruby-on-rails - 处理来自远程真 Rails 的响应时出错

jquery - 通过 JQuery 传递和返回 ColdFusion 结构

php - 此路由不支持 GET 方法。支持的方法 : POST. laravel-8

PHP/mySQL - 在插入数据库之前如何安全地编码/解码/转义/任何需要的字符串

mysql 一列的最后一条记录以及其他列和分组依据的总和

用于报告 : IF Record Does Not Exist, 的 MySQL 查询返回字段的 0 值

javascript - 分割多维 JavaScript 数组

javascript - 将图像从另一个域 url 上传到我的服务器

Laravel 4 主布局未渲染