2017-08-16 121 views
-1

我擁有來自數據庫的用戶詳細信息,並使用帶編輯按鈕的刀片環路進行打印。現在我想要的是,如果我點擊按鈕,我需要點擊用戶的按鈕的用戶詳細信息。Laravel用戶編輯

我試着隱藏輸入提交<input type="hidden" value="{{$user->email}}" name="email"> 在我的控制器我只是打印表單提交值。但我只獲得最後一個用戶。

見下面,我希望你能明白..

<div class="content-wrapper"> 
    <div class="flex-center position-ref full-height"> 
     <form action="{!!url('/delete')!!}" method="post"> {!!csrf_field()!!} 
      <div class="table-responsive"> 
       <table class="table table-hover"> 
        <thead> 
         <tr> 
         <th>ID</th> 
         <th>Name</th> 
         <th>Email</th> 
         <th>Role</th> 
         </tr> 
        </thead> 
        <tbody> 
        @foreach($users as $user) 
         <tr> 
         <td>{{$user->id}}</td> 
         <td>{{$user->name}}</td> 
         <td>{{$user->email}}</td> <input type="hidden" value="{{$user->email}}" name="email"> 
         <td>{{$user->role}}</td> 
         <td> 
          <div class="btn-group"> 
           <button type="submit" class="btn btn-primary btn-sm" name="edit" >Edit</button> 
           <button type="submit" class="btn btn-primary btn-sm" name="delete" >Delete</button> 
           <button type="submit" class="btn btn-primary btn-sm" name="make" >Make Admin</button> 
          </div> 
         </td> 
         </tr> 
        @endforeach 
       </tbody> 
       </table> 
      </div> 
     </form>  
    </div> 
</div> 
+0

把控制器代碼 –

回答

0

假設您想要單擊編輯按鈕時使用用戶的詳細信息編輯頁面。

<a href="{{ route('your_route_name',$user->id) }}" class="test-btn btn btn-primary btn-sm">Edit</a> 
0

我想那是因爲你使用的是相同的名稱「電子郵件」爲所有用戶的隱藏字段。它正在被重寫,因爲表單是相同的。
取而代之,將form標記添加到循環中,並刪除表之前的標記。

@foreach($users as $user) 
    <form action="{!!url('/delete')!!}" method="post"> {!!csrf_field()!!} 
     <tr> 
     <td>{{$user->id}}</td> 
     <td>{{$user->name}}</td> 
     <td>{{$user->email}}</td> <input type="hidden" value="{{$user->email}}" name="email"> 
     <td>{{$user->role}}</td> 
     <td> 
      <div class="btn-group"> 
       <button type="submit" class="btn btn-primary btn-sm" name="edit" >Edit</button> 
       <button type="submit" class="btn btn-primary btn-sm" name="delete" >Delete</button> 
       <button type="submit" class="btn btn-primary btn-sm" name="make" >Make Admin</button> 
     </div> 
     </td> 
     </tr> 
    </form> 
@endforeach 

或者,您可以在循環之外放置一個隱藏的電子郵件字段,並在提交之前使用JS分配它的值。

步驟1:將數據屬性(data-email)添加到您的按鈕以獲取電子郵件。還要添加一個公共類名來捕獲點擊事件。 (參見JS部分)

<button type="button" class="test-btn btn btn-primary btn-sm" name="edit" data-email="{{$user->email}}" >Edit</button> 
<button type="button" class="test-btn btn btn-primary btn-sm" name="delete" data-email="{{$user->email}}" >Delete</button> 
<button type="button" class="test-btn btn btn-primary btn-sm" name="make" data-email="{{$user->email}}" >Make Admin</button> 

步驟2:移動email隱藏字段的循環外使用的值作爲空白。

<form action="{!!url('/delete')!!}" method="post" id="test-form"> {!!csrf_field()!!} 
<input type="hidden" value="" name="email" id="email"> 

第三步:添加JS捕捉上的按鈕點擊事件和點擊的按鈕的電子郵件的值分配到電子郵件的文本字段。

$(".test-btn ").on("click",function(e){ 
    //assign the email value from button to variable 
    email = $(this).attr(data-email); 

    //assign the email value to email hidden field 
    $("#email").value(email); 

    //submit the form 
    $("#test-form").submit(); 
});