【问题标题】:laravel post unchecked checkbox with multipul checkboxeslaravel 发布带有多个复选框的未选中复选框
【发布时间】:2016-08-25 12:33:18
【问题描述】:

我在一个表单中有许多选项,它们在提交后保存在一个循环中。这些选项中的每一个都包含一个复选框,每个选项都有相同的复选框,我使用以下技术将未选中的复选框值添加到 POST 数据中:

我想知道复选框是否未被选中并获取该值。

{{ Form::hidden('exclude[]', 0) }}
{{ Form::checkbox('exclude[]', 1) }}

但是,使用这种技术的结果是在“排除”项的数组中添加了一个额外的值。

  'exclude' => 
    array (size=10)
  0 => string '0' (length=1)
  1 => string '0' (length=1)
  2 => string '0' (length=1)
  3 => string '0' (length=1)
  4 => string '1' (length=1)
  5 => string '0' (length=1)
  6 => string '0' (length=1)
  7 => string '0' (length=1)
  8 => string '0' (length=1)
  9 => string '0' (length=1)

在代码中,该结果取自上述技术的只有 9 个实例,但是一旦选中复选框,该值就会添加到数组中,而不是替换它。如果我选中每个选项的复选框,它将在“排除”数组中返回 18 个项目。

我怎样才能使它正常工作,就像它被选中一样,不返回未选中的值以及选中的值。希望这是有道理的:P

这是发生的事情的一个例子:http://web-4bdd8023-5cb2-4f23-adfa-b08b0b136149.runnable.com/

【问题讨论】:

    标签: php post laravel checkbox


    【解决方案1】:

    您可以尝试调整字段名称以包含索引。

    // some loop
    {{ Form::hidden("exclude[$i]", 0) }}
    {{ Form::checkbox("exclude[$i]", 1) }}
    

    【讨论】:

    • 是的,在我发布 Q 之后就想到了这一点。不过,它不再需要隐藏了。 :P
    【解决方案2】:

    我结合了@lagbox 的答案

    <?php $counter=0;?>
    @foreach ($sales as $salesperson => $name)
    {!! Form::hidden('employee_id['.$counter.']',0 ) !!}
    {!! Form::checkbox('employee_id['.$counter.']',$salesperson ) !!} {!! $name !!} <br/>
    *Alasan Jika Tidak Masuk: {!! Form::text('employee_reason['.$counter.']','',['class' => 'form-control','id'=>'employee_id-field'] ) !!}
    <br/>
    <?php $counter = $counter+1; ?>
    @endforeach
    

    不够干净,但它正在工作。

    【讨论】:

      猜你喜欢
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多