php - 复选框重复

标签 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。

由于第 2 点,我知道它复制了两次,我只是不确定它一开始为什么要复制。

最佳答案

试试这个:

<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>

关于php - 复选框重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40393894/

相关文章:

php - Codeigniter + Chrome 错误 (ERR_RESPONSE_HEADERS_TOO_BIG)。怎么解决?

php - 在 Woocommerce 3 中以编程方式创建产品时设置产品类型

php - 如果字段具有整数值以及 php/mysql 中的文本,如何显示数据?

laravel - 转储优化的 Composer 自动加载器

php - 具有深厚关系的 Laravel orderBy

php - 为自定义验证规则命名 - Laravel 8

html - 从 capybara 的数据值属性中获取值

javascript - jQuery 仅偶尔工作或在页面刷新/硬重新加载时工作

html - 文本省略号不显示在 flexbox 元素上

php - 获取与 Eloquent Laravel 的 hasMany 关系