首页 > 解决方案 > 如何检查用户是否选择了多个复选框

问题描述

我正在开发一个 Laravel 5.8 项目,它是一个在线商店。在这个项目中,我想为管理员添加“打印订单因素”功能。

所以我做了一个这样的表格:

<form method="POST" action="{{ route('orders.newprint') }}">
    @csrf
    @forelse($orders as $order)
    <tr>
        <td><input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}">&nbsp;</td>
        <td>{{ $order->ord_id }}</td>
        <td>{{ $order->status_label }}</td>
        <td>{{ $order->customer_name }}</td>
        <td>{{ $order->ord_total }}</td>
    </tr>
    @empty
        <td colspan="7" class="text-center">No order to show</td>
    @endforelse
</form>

所以基本上管理员可以像这样选择多个订单:

在此处输入图像描述

我正在尝试将订单 ID 作为数组发送:

<input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}">

现在在控制器,我需要检查用户是否选择了多个订单

public function prnpriview(Request $request)
    {
        if(!empty($request->input('actions'))){
            if($request->input('actions')=='print_factors'){
                if(USER SELECTES MORE THAN ONE CHECKBOX) { 
                    ...
                    return view('admin.shop.orders.newprint', compact('args'));
                }else{
                    return back();
                }
            }
        }else{
            return back();
        }
    }

那么如何检查用户是否选择了多个复选框(多个复选框)?

我真的很感激你们关于这个的任何想法或建议......

谢谢。

标签: phplaravellaravel-5.8

解决方案


$request->orderCheck将在一个数组中,因此您可以使用count()

$checked = $request->input('orderCheck',[]);// if checkbox is not checked than return empty array
if(count($checked) > 1) { 
    return view('admin.shop.orders.newprint', compact('args'));
}else{
    return back();

推荐阅读