2017-08-15 23 views
1

我正在循環訪問數據庫行,對於每個結果,都有2個單選按鈕,允許用戶批准或拒絕該'行'。當用戶完成後,他/她可以提交表單。這就是我所做的。在foreach語句中使用單選按鈕時出錯

@foreach($items as $item)     
    <td>{{ $item->item_title }}</td> 
    <td>{{ $item->description }}</td> 
    <td>{{ $item->price }}</td> 
    <td>{{ $item->quantity }}</td> 
    <td>{{ $item->total }}</td> 
    <td> 
     <div class='btn-group'> 
       <form action="{{url('lineManagerUpdateRequests')}}" method="post"> 

       <input type="radio" name="status[]" value="2"> Approve 
       <input type="radio" name="status[]" value="6"> Decline 
      </div> 
     </td>  
    @endforeach 
    <input type="submit" name="submit" class="btn btn-sm btn-danger"> 
</form> 

有一個問題,因爲用戶只能從一行中選擇一個無線電。例如,如果有3行,用戶只能選擇一行單選按鈕。請如何糾正這一點。

+0

您的窗體關閉標記位於...奇怪的是,這是你的問題或這是你的代碼中的問題? – milo526

+0

它必須在foreach循環之外,否則每行都有一個提交按鈕 – radioactive

+0

我使用ColdFusion做類似的事情。總的想法是將記錄標識符附加到與該記錄相關聯的所有表單字段。這隻會解決您的單選按鈕問題,但可以幫助您在提交表單後跟蹤事件。 –

回答

0
@foreach($items as $item)     
    <td>{{ $item->item_title }}</td> 
    <td>{{ $item->description }}</td> 
    <td>{{ $item->price }}</td> 
    <td>{{ $item->quantity }}</td> 
    <td>{{ $item->total }}</td> 
    <td> 
     <div class='btn-group'> 
       <form action="{{url('lineManagerUpdateRequests')}}" method="post"> 

       <input type="radio" name="status[]" value="2"> Approve 
       <input type="radio" name="status[]" value="6"> Decline 
       </FORM> 
      </div> 
     </td>  
    @endforeach 
    <input type="submit" name="submit" class="btn btn-sm btn-danger"> 
+0

這隻會提交其中一行... – Ice76

+0

@ Ice76我認爲,它必須完美地工作,因爲她已經在for-each循環中包含了form標籤。所以每個表單只有2個單選按鈕。它應該完美,我猜。 –

+0

雖然它可以用於一行。如果用戶選擇在多個行上批准並提交,那麼只有該行將通過POST發送URL。它們是以這種方式發佈到相同URL的單獨形式。 – Ice76

0

應放置每個項目提交按鈕或將foreach循環之外表單標籤和使用AJAX使單獨的更新和整體保存使用提交按鈕

方案一:

@foreach($items as $item)     
    <td>{{ $item->item_title }}</td> 
    <td>{{ $item->description }}</td> 
    <td>{{ $item->price }}</td> 
    <td>{{ $item->quantity }}</td> 
    <td>{{ $item->total }}</td> 
    <td> 
    <div class='btn-group'> 
      <form action="{{url('lineManagerUpdateRequests')}}" method="post"> 

      <input type="radio" name="status[]" value="2"> Approve 
      <input type="radio" name="status[]" value="6"> Decline 
      <input type="submit" name="submit" class="btn btn-sm btn-danger"> 
      </form><!-- Need to add a closing form tag --> 
     </div> 
    </td>  
@endforeach 

選項二:

<form action="{{url('lineManagerUpdateRequests')}}" method="post"> 
@foreach($items as $item)     
    <td>{{ $item->item_title }}</td> 
    <td>{{ $item->description }}</td> 
    <td>{{ $item->price }}</td> 
    <td>{{ $item->quantity }}</td> 
    <td>{{ $item->total }}</td> 
    <td> 
    <div class='btn-group'>     
     <input type="radio" name="status[]" value="2"> Approve 
     <input type="radio" name="status[]" value="6"> Decline     
    </div> 
    </td>  
@endforeach 
<input type="submit" name="submit" class="btn btn-sm btn-danger"> 
</form><!-- Need to add a closing form tag --> 
0

您可以爲d單選按鈕定義單獨的組不同的行。

<fieldset id="{{ $item->item_title }}"> 
     <input type="radio" name="status[]" value="2"> Approve 
    <input type="radio" name="status[]" value="6"> Decline 
</fieldset>  

Id屬性,你可以把一些東西,可能是獨一無二的,我希望$item變量有一個主鍵($ Id)的?現在我放置$item->item_title

0

這將是獲得每個項目的所有批准/拒絕值的最佳方法。然後,您必須循環並進行更改。

<form action="{{url('lineManagerUpdateRequests')}}" method="post"> 
    @foreach($items as $item) 
    <td>{{ $item->item_title }}</td> 
    <td>{{ $item->description }}</td> 
    <td>{{ $item->price }}</td> 
    <td>{{ $item->quantity }}</td> 
    <td>{{ $item->total }}</td> 
    <td> 
     <div class='btn-group'> 
       <input type="radio" name="{{ $item->id }}" value="2"> Approve 
       <input type="radio" name="{{ $item->id }}" value="6"> Decline 
      </div> 
     </td> 
    @endforeach 
    <input type="submit" name="submit" class="btn btn-sm btn-danger"> 
</form> 

這會給你這個ID,以及它是否被批准或拒絕的結果。如果失蹤,這意味着他們沒有迴應。