复选框重复

时间:2016-11-03 04:29:29

标签: php html laravel

我正在尝试创建更新页面,并且我已完成大部分页面,但复选框部分除外。由于某种原因,我还没弄明白,复选框是重复的。我正在使用laravel。

enter image description here

这是表单特定部分的代码。

<div class="form-group">
    <label>Focus Area</label>
    <br>
    @foreach(FocusArea::all() as $focusArea)
        @if(isset($project))
            <div class="checkbox material checkbox-success">
                <label>
            @foreach($project->getIdsOfFocusAreas() as $selectedFocusArea)
                @if($selectedFocusArea == $focusArea->focus_area_id)
                    <input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}" checked>
                @else
                    <input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}">
                @endif
            @endforeach
                {{ $focusArea->name }}
                </label>
            </div>
            <br>
        @endif
    @endforeach
</div>

一些额外信息:

  1. FocusArea :: all()生成的数组中的元素数为5。

  2. getIdsOfFocusAreas()生成的数组中的元素数为2。

  3. 我知道它因为第2点而重复两次,我只是不确定它为什么会在第一时间重复。

1 个答案:

答案 0 :(得分:1)

试试这个:

<div class="form-group">
    <label>Focus Area</label>
    <br>
    <?php $selectedFlug = 0; ?>
    @foreach(FocusArea::all() as $focusArea)
        @if(isset($project))
            <div class="checkbox material checkbox-success">
                <label>
                    @foreach($project->getIdsOfFocusAreas() as $selectedFocusArea)
                        @if($selectedFocusArea == $focusArea->focus_area_id)
                            <input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}"  {{ ($selectedFocusArea == $focusArea->focus_area_id) ? 'checked' : '' }} >
                            <?php $selectedFlug = 1; ?>
                            @break
                        @else 
                            <?php $selectedFlug = 0; ?>
                        @endif
                    @endforeach
                    @if($selectedFlug == 0)
                        <input type="checkbox" name="focus-area[]" value="{{ $focusArea->focus_area_id }}">
                    @endif
                    {{ $focusArea->name }}
                </label>
            </div>
            <br>
        @endif
    @endforeach
</div>