我有来自数据库的用户详细信息,并使用刀片循环打印并带有编辑按钮。现在我想,如果我点击按钮,我需要点击用户按钮的用户详细信息。
我尝试使用隐藏的输入字段<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)
我认为这是因为你使用相同的名字&#34;电子邮件&#34;适用于所有用户的隐藏字段。由于形式相同,它被覆盖了。
相反,在循环中添加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
)添加到按钮以获取电子邮件。还要添加一个公共类名来捕获click事件。 (见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">
步骤3:添加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();
});
答案 1 :(得分:0)
假设您在单击编辑按钮时想要使用用户的详细信息编辑页面。
<a href="{{ route('your_route_name',$user->id) }}" class="test-btn btn btn-primary btn-sm">Edit</a>