如何在没有按钮提交的情况下创建 laravel 过滤器

How to create laravel filter without button submit

我想在仪表板管理面板中创建一些过滤器,此过滤器使用 select 下拉菜单,带有今天、过去 7 天和过去 30 天的选项,我不会使用按钮提交来获取数据。我用这个条件

    if (request()->ajax()) {
            if (!empty($request->filter)) {
                if ($request->filter == 1) {
                    $today = array(
                        $purchase_order = PurchaseOrder::whereDate('date_of_purchase', '=', Carbon::now())->get()->count(),
                        $sales_order = SalesOrder::whereDate('date_of_sales', '=', Carbon::now())->get()->count(),
                        $revenue = SalesOrder::whereDate('date_of_sales', '=', Carbon::now())->get()->sum('grand_total'),
                        $product_sales = ProductSalesOrder::leftJoin('product', 'product.product_id', '=', 'product_sales_order.product_id')
                                        ->leftJoin('sales_order', 'sales_order.sales_order_id', '=', 'product_sales_order.sales_order_id')
                                        ->whereDate('sales_order.date_of_sales', '=', Carbon::now())
                                        ->selectRaw('harga_beli * qty_order AS total_modal')->get()->sum('total_modal'),
                    );
                    echo json_encode($today);
                } elseif($request->filter == 2){
                    $a_week = array(
                        $purchase_order = PurchaseOrder::whereDate('date_of_purchase', '>=', Carbon::now()->subDays(7))->get()->count(),
                        $sales_order = SalesOrder::whereDate('date_of_sales', '>=', Carbon::now()->subDays(7))->get()->count(),
                        $revenue = SalesOrder::whereDate('date_of_sales', '>=', Carbon::now()->subDays(7))->get()->sum('grand_total'),
                        $product_sales = ProductSalesOrder::leftJoin('product', 'product.product_id', '=', 'product_sales_order.product_id')
                                        ->leftJoin('sales_order', 'sales_order.sales_order_id', '=', 'product_sales_order.sales_order_id')
                                        ->whereDate('sales_order.date_of_sales', '>=', Carbon::now()->subDays(7))
                                        ->selectRaw('harga_beli * qty_order AS total_modal')->get()->sum('total_modal'),
                    );
                    echo json_encode($a_week);
                }
                elseif ($request->filter == 3) {
                    $a_month = array(
                        $purchase_order = PurchaseOrder::whereDate('date_of_purchase', '>=', Carbon::now()->subDays(30))->get()->count(),
                        $sales_order = SalesOrder::whereDate('date_of_sales', '>=', Carbon::now()->subDays(30))->get()->count(),
                        $revenue = SalesOrder::whereDate('date_of_sales', '>=', Carbon::now()->subDays(30))->get()->sum('grand_total'),
                        $product_sales = ProductSalesOrder::leftJoin('product', 'product.product_id', '=', 'product_sales_order.product_id')
                                        ->leftJoin('sales_order', 'sales_order.sales_order_id', '=', 'product_sales_order.sales_order_id')
                                        ->whereDate('sales_order.date_of_sales', '>=', Carbon::now()->subDays(30))
                                        ->selectRaw('harga_beli * qty_order AS total_modal')->get()->sum('total_modal'),
                    );
                }

            }
        }

我应该在 laravel blade 中做什么?它将使用 ajax 来获取数据?,或者什么

<select id="mySelect" onchange="filterData()">
   <option value="1">Today</option>
   <option value="2">Week</option>
   <option value="3">Month</option>
</select>

<script>
  function filterData() {
  let filter = document.getElementById("mySelect").value;

  // Here you need to ajax call the method by post request with filter value

  }
</script>