2016-11-03 113 views
3

我想創建一個更新頁面,並且我已經完成了大部分頁面,除了複選框部分。出於某種原因,我還沒有弄清楚,複選框是重複的。我正在使用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產生的陣列中的數::所有()是5。

  2. 元件的所產生的陣列中的數getIdsOfFocusAreas()是2.

我知道它是重複兩次因爲poi nt號碼2,我只是不完全確定它爲什麼重複在第一位。

+0

這看起來並不像PHP。這是什麼?你應該澄清。 – taco

+0

您正在打印兩次。你的foreach運行兩次,所以有兩個複選框。你應該改變你的邏輯。 –

+0

@taco嗨,對不起,我沒有在問題中說明。它是PHP,但與Laravel框架一起使用。 – fizjin

回答

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

嗨Rimon感謝您的幫助,您的代碼設法擺脫除第一個之外的所有重複,eAsset有2個複選框。 – fizjin

+0

Hi Rimon,確實在代碼中添加了「繼續」爲您排除了第二個針對eAsset的複選框?我一直在嘗試刪除剩餘的額外複選框,但我仍然無法管理它。我的IDE給我一個「不能打破/繼續1級(S)」 – fizjin

+0

我以後更新我的答案!你繼續嘗試! –