Laravel 将复选框值从视图传递到控制器
如何将复选框值从视图传递到控制器,以便比较选中/未选中的值(用于数据库更新) 观点:Laravel 将复选框值从视图传递到控制器,laravel,laravel-5,Laravel,Laravel 5,如何将复选框值从视图传递到控制器,以便比较选中/未选中的值(用于数据库更新) 观点: @foreach ($second as $sec) <br> <div class = "form-group"> {{$sec->Roll }}      {{ $sec->Name}} </div> <div
@foreach ($second as $sec)
<br>
<div class = "form-group">
{{$sec->Roll }}
    
{{ $sec->Name}}
</div>
<div class = "form-group">
<input tabindex="1" type="checkbox" value="{{$sec->Roll}}" name="1" />
</div>
@endforeach
Ps:这可能只适用于我的描述与你想做的相符的情况,因为你的问题似乎如此
我这样做的方法之一是不在checkbox元素中添加任何值。然后检查返回的值是否为带有is_string(_变量)的string。也就是说,而不是:
<input tabindex="1" type="checkbox" value="{{$sec->Roll}}" name="checkbox_1" />
我应该将选中的值设置为“开”,将未选中的值设置为null
因此,我将在控制器中执行以下操作:
foreach ($columns as $col) {
//dd("Y");
if($col == $txt[1]) {
$got=DB::table($req)->select($col)->get();
//dd($got);
//COMPARE CHECKBOX VALUE "CHECKED/UNCHECKED" WITH ITS DEFAULT VALUE
DB::statement("UPDATE " . $req . " set " . $got . " to " . $got . " + 1 WHERE" .$req->Roll . " IN ".( implode(',', $req)));
}
}
return request()->all();
if(is_string(request()->get('checkbox_1))) {
//checked
else {
// unchecked
}
希望这一点现在清楚了
仅供更新:
另一种方法是在创建foreach时传递您试图更新的列的键,因此您将有如下内容:
@foreach ($second as $key=> $sec)
然后在复选框上,它将用作不同的名称:
<input tabindex="1" type="checkbox" name="{{ $key }}" />
如果返回request()->all(),则使用这种方法
首先在控制器中,您可以判断是否有其他错误
请确保注意foreach()中的
$key
,以确保所做的事情是正确的。我这样做的方法之一是不在checkbox元素中添加任何值。然后检查返回的值是否为带的string(\u变量)
。这可能不是一个理想的解决方案,但如果您尝试过,可能会有点奇怪。任何选中的复选框的值都是“开”,而未选中的复选框的值都是null
您是否也尝试过检查您请求中的值?您能否详细说明一下?它只返回null值:(@arunimabaidia在提交表单之前,您应该检查复选框,并确保您调用的是请求的正确参数。从我给出的示例中可以看出,我调用的复选框名为checkbox\u 1
,这非常重要,以便知道您所拥有的内容是否正确,它是否工作正常!!但这里有一个我在做一大堆的复选框,只为一个value@ArunimaBadiya,另一种方法是在创建foreach时传递您试图更新的列的键,因此您将得到如下内容:@foreach($key=>second)
然后在复选框上,它将用作不同的名称:
如果您执行返回请求()->all(),则使用这种方式
首先在控制器中,您可以判断是否有其他错误。我想问题是,您所有的复选框只有一个名称,即“1”,这意味着在提交时,您可能会有一个空值。
<input tabindex="1" type="checkbox" name="{{ $key }}" />