【问题标题】:laravel 5.4: list of input checked checkboxeslaravel 5.4:输入复选框列表
【发布时间】:2018-06-29 10:57:54
【问题描述】:

我有一个带有输入名称的复选框列表的表单,例如typedoc_1typedoc_2typedoc_3 等。 如何进行循环以检查检查了哪些数字?通常我在控制器中使用Request (as $request->type_1)。 谢谢。

【问题讨论】:

  • 显示你到目前为止做了什么,你想要什么,用一些代码解释一下which numbers are checked是什么意思??是在控制器上还是在视图上??

标签: forms laravel for-loop request


【解决方案1】:

// 刀片

<input type="checkbox" checked name="typedoc[]" value="1"/>
<input type="checkbox" name="typedoc[]" value="2"/>
<input type="checkbox" name="typedoc[]" value="3"/>
<input type="checkbox" checked name="typedoc[]" value="4"/>

// 控制器

$selected = $request->typedoc; // [1,4]

【讨论】:

    【解决方案2】:
    <input type="checkbox" name="typedoc[1]" value="1"/>
    <input type="checkbox" name="typedoc[2]" value="1"/>
    <input type="checkbox" name="typedoc[3]" value="1"/>
    <input type="checkbox" name="typedoc[4]" value="1"/>
    

    在您的控制器中:

    $typedocs = $request->typedoc;
    foreach($typedocs as $key=> $value){
      if($value == 1) { ##here you can check your condition
       //insert/update
      }else{
        //delete
       }
    }
    

    希望对你有帮助

    【讨论】:

    • 但是传递给我的控制器是没问题的,单独检查它们是.. if ($request->typedoc[1]){ //insert }else{ //delete } 我不想为每个数字手动制作一个列表...
    • 抱歉,数组不是我的强项……找到了解决方案!在我的控制器中: $typedocs = $request->typedoc; foreach ($typedocs as $key => $value){}
    • @user3370273 这就是为什么您需要添加一些带有问题的代码,这有助于其他人更好地理解。
    • 对不起。感谢 Hamalraj 的帮助!
    【解决方案3】:

    如果您有 5 个输入,那么您可以执行以下操作-

    for($i=1;$i<=5;$i++){
        if($request->has('typedoc_'.$i)){
             $type = $request->input('typedoc_'.$i);
        } 
     }
    

    使用请求has() 方法确定request 上是否存在值。

    或使用filled() 来确定请求中的值是否为present 而不是empty

    if ($request->filled('typedoc_'.$i)) {
        //insert/update
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-13
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多