【问题标题】:The update does not return the selected checkbox更新不返回选中的复选框
【发布时间】:2022-11-10 13:04:40
【问题描述】:

当我返回包含它的视图时,更新复选框时出错;特别是它总是返回我第一个选中的复选框,而不是更新之前选择的值。

谁能帮我解决这个问题?

<div class="mb-3">
  <div for="treatment" class="form-label">All treatments</div>
  @foreach ($treatments as $treatment)
      <input type="checkbox" id="{{$treatment->title}}" name="treatments[]" value="{{$treatment->id}}" {{ $treatment->id == 1 ? 'checked' : null }}>
      <label for="{{$treatment->title}}"> {{$treatment->title}}</label><br>
  @endforeach
</div>

【问题讨论】:

    标签: laravel checkbox laravel-8 laravel-9


    【解决方案1】:
    {{ $treatment->id == 1 ? 'checked' : null }}
    

    在此代码中,您仅在 $treatment-&gt;id 为 1 时添加了 'checked' 属性,因此只会选中第一个复选框。

    @foreach ($treatments as $key => $treatment)
        <input type="checkbox" id="{{$treatment->title}}" name="treatments[]" value="{{$treatment->id}}" {{ $treatment->id == $key ? 'checked' : null }}>
        <label for="{{$treatment->title}}"> {{$treatment->title}}</label><br>
    @endforeach
    

    【讨论】:

    • 所以我得到了错误:Undefined variable $key
    • 哪条线?在@foreach 行?
    • 你是什​​么意思?
    • 我在@foreach 循环和 <input> html 元素中使用了 $key。
    • 是的,但是没有定义 $ 键。反正我解决了。去看看我的答案。
    【解决方案2】:

    我解决了以下问题:

    <div class="mb-3">
      <div for="treatment" class="form-label">All treatments</div>
      @foreach ($treatments as $treatment)
          <input type="checkbox" id="{{$treatment->title}}" name="treatments[]" value="{{$treatment->id}}" @if (count($quote->treatments->where('id', $treatment->id))) checked @endif>
          <label for="{{$treatment->title}}"> {{$treatment->title}}</label><br>
      @endforeach
    </div>
    
    

    【讨论】:

      【解决方案3】:
      return back()->withInput();
      

      此外,如果对请求执行了验证并且请求没有通过验证,Laravel 将自动重定向回来并将输入闪现到会话中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-19
        • 2017-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-25
        相关资源
        最近更新 更多