欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

处理name属性是数组的窗体中的单选按钮值 Handling radio button values in forms where the name attribute is an array

嗨!我有一个表格列出了一些事件的摄影师。表单持有关于支付每位摄影师的费用的信息,以及一张纸条,以及是否支付特定摄影师(单选按钮,是/否)。由于给定事件的摄影师的数量是模糊的,所以我将表单字段名称定义为数组,所以我可以反复添加摄影师的数量并相应地更新它们的字段。

这是我所描述的形式的片段:

@foreach($event_photographers as $key => $photographer)
<div class="row" style="margin-bottom:10px;">
    <div class="col-xs-3">
        <h5><i class="fa fa-user"></i> Fotograf {{ $event_photographers->count() >1 ? $key+1 : '' }}</h5>
        {{ $photographer->getFullnameAttribute() }}
    </div>
    <div class="col-xs-3">
        <i class="fa fa-money"></i> {{ Form::label('photographer_payment_sum', 'Arvode') }}
        {{ Form::text('photographer_payment_sum[]', $photographer->pivot->photographer_payment_sum, array('class' => 'form-control', 'placeholder' => 'Arvode i kronor', 'autocomplete' => 'off')) }}
        {{ $errors->first('photographer_payment_sum[]', '<span class="text-danger">:message</span>') }}
    </div>
    <div class="col-xs-4">
        <i class="fa fa-pencil"></i> {{ Form::label('photographer_payment_notes', 'Kommentar') }}
        {{ Form::text('photographer_payment_notes[]', $photographer->pivot->photographer_payment_notes, array('class' => 'form-control', 'placeholder' => 'Kommentar', 'autocomplete' => 'off')) }}
        {{ $errors->first('photographer_payment_notes[]', '<span class="text-danger">:message</span>') }}
    </div>
    <div class="col-xs-2 text-right">
        {{ Form::label('photographer_is_paid', 'Fått betalt?') }}<br/>
        <div class="btn-group" data-toggle="buttons">
            <label id="photographer_is_paid_true" class="btn btn-default {{ $photographer->pivot->photographer_is_paid ? 'active' : '' }}">
                <input type="radio" name="photographer_is_paid[]" value="1" {{ $photographer->pivot->photographer_is_paid ? 'checked' : '' }}> Ja
            </label>
            <label id="photographer_is_paid_false" class="btn btn-default {{ !$photographer->pivot->photographer_is_paid ? 'active' : '' }}">
                <input type="radio" name="photographer_is_paid[]" value="0" {{ !$photographer->pivot->photographer_is_paid ? 'checked' : '' }}> Nej
            </label>
        </div>
        {{ $errors->first('photographer_is_paid', '<span class="text-danger">:message</span>') }}                       
    </div>
</div>
@endforeach

然而,当我发布表单时,我看到我有多个值被发送到笔记字段以及每个摄影师的成本字段。但是,从单选按钮获得的唯一值就是“true”值。当切换设置为“Ja”时。

有没有人遇到同样的问题?

最佳答案(由Cederman选定)
bashy

如果您有多个无线电需要分组,您可能需要设置阵列号。

name="photographer_is_paid[1]"
name="photographer_is_paid[2]"

只是一个想法

bashy
 bashy
2年前(1,047,520 XP)

默认情况下,无线电类型输入只能设置为false / 0以外的其他输入。你需要检查一下。

您可以通过使用yes / no作为值来解决此问题。或者如果未设置,则设置默认值

$request->input('name', 0);
 
塞德曼
塞德曼
2年前(3,800 XP)

感谢您的回复,但似乎无法正常工作。

在我的情况下,我有四个摄影师,除了我也有四个单选按钮,我会得到四个值的所有属性。

这是我得到的帖子值。正如你所看到的,我拥有的所有数组中有四个值,除了单选按钮值(photographer_is_paid []),我只有一个。在这种情况下,所有单选按钮都切换到“否”:

photographer_ids[]:1
photographer_ids[]:5
photographer_ids[]:6
photographer_ids[]:7
photographer_payment_sum[]:
photographer_payment_notes[]:
photographer_payment_sum[]:
photographer_payment_notes[]:
photographer_payment_sum[]:
photographer_payment_notes[]:
photographer_payment_sum[]:
photographer_payment_notes[]:
photographer_is_paid[]:no
 
bashy
 bashy
2年前(1,047,520 XP)

如果您有多个无线电需要分组,您可能需要设置阵列号。

name="photographer_is_paid[1]"
name="photographer_is_paid[2]"

只是一个想法

 
塞德曼
塞德曼
2年前(3,800 XP)

真棒,这样做,谢谢!我甚至不知道这是一件“事情”的呵呵。刚才我才知道你可以把输入的名字当作一个数组=

 
bashy
 bashy
2年前(1,047,520 XP)

没问题 :)

来自 https://laracasts.com/discuss/channels/general-discussion/handling-radio-button-values-in-forms-wher...
普通分类: