【问题标题】:Laravel checkbox input old not working properlyLaravel 复选框输入旧的无法正常工作
【发布时间】:2017-09-01 15:14:37
【问题描述】:

我有一个表格。提交表单后,如果有错误,则会重定向到同一页面并预填充用户提交的数据。我在该表单中有3 checkbox 字段。假设用户只检查了first checkbox 并提交了表单。所以如果表单有一些错误,它会重定向到同一个页面,但问题是当它再次重定向到这里时,然后all the checkboxes got selected instead of only the 1st one

<div class="form-group">
    <label>Hobbies: <span><em>{{$errors->first('hobbies')}}</em></span></label>
    <input type="checkbox" name="hobbies[]" value="Cricket" @if (is_array(old('hobbies'))) && (in_array('Cricket', old('hobbies'))) checked @endif> Cricket
    <input type="checkbox" name="hobbies[]" value="Football" @if (is_array(old('hobbies'))) && (in_array('Football', old('hobbies'))) checked @endif> Football
    <input type="checkbox" name="hobbies[]" value="Badminton" @if (is_array(old('hobbies'))) && (in_array('Badminton', old('hobbies'))) checked @endif> Badminton
</div>

【问题讨论】:

  • 你检查过 Input::old( ?
  • 没有。我没查过
  • 你使用的是哪个版本的 laravel?
  • 我使用的是 laravel 5.4
  • Cricket 像这样改变所有三行

标签: php laravel checkbox


【解决方案1】:

您的括号不平衡且放错了位置,因此您的 if 评估不正确。

@if (is_array(old('hobbies')) && in_array('Badminton', old('hobbies')))

【讨论】:

    【解决方案2】:

    你应该这样做才能让它工作,

    <div class="form-group">
        <label>Hobbies: <span><em>{{$errors->first('hobbies')}}</em></span></label>
        <input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Cricket', old('hobbies'))) ? 'checked' : '' }}> Cricket
        <input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Football', old('hobbies'))) ? 'checked' : '' }}> Football
        <input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Badminton', old('hobbies'))) ? 'checked' : '' }}> Badminton
    </div>
    

    试一试,应该可以的。

    【讨论】:

      猜你喜欢
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多