我有一个名为products的列的用户表,同时为用户添加了一个复选框(产品)列表,我可以在勾选复选框的同时添加产品。
问题在于编辑用户,如果用户有产品(abc),则应在编辑用户界面中选中(勾选)abc复选框。我无法做到这一点。请帮忙。 提前致谢。以下是代码
多数民众赞成我如何使用复选框调用产品
@foreach($users as $user)
{{ Form::open([ 'files' => true, 'method' => 'post', 'route' => 'users.edit', 'class' => 'form']) }}
<div class="container" style="margin-top: 0; line-height: 50px; height: 50px;">
<h4 class="module-title">Create User</h4>
</div>
<br clear="both"/>
@if (session('alert'))
<div class="alert alert-success">
{{ session('alert') }}
</div>
@endif
<div class="container">
<table class="table table-striped">
<tr>
<th>
Username
</th>
<td>
{{ Form::text('username',$user->username, ['class' => 'form-control']) }}
</td>
</tr>
<tr>
<th>
New Password
</th>
<td>
{{ Form::password('password', array('class' => 'form-control')) }}
</td>
</tr>
<tr>
<th>
Role
</th>
<td>
<div class="form-group">
<select name="select_list1" class="form-control">
@if ($user->role == "admin")
<option value="admin" selected="selected">Admin</option>
<option value="user">User</option>
@endif
@if ($user->role == "user")
<option value="user" selected="selected">User</option>
<option value="user">Admin</option>
@endif
</select>
</div>
</td>
</tr>
<tr class="products">
<th>
Product Type<br/>(After Changes please re-login)
</th>
<td>
<table>
@foreach($products as $product)
<tr>
<td style="width: 32%; padding-bottom: 5px;"><input type="checkbox" name="products[]" value="{{$product->name}}">
{{$product->name2}}
</td>
</tr>
@endforeach
</table>
</td>
</tr>
<tr>
<th>
Active
</th>
<td>
<div class="form-group">
<select name="select_list2" class="form-control">
@if ($user->active == 1)
<option value="1" selected="selected">Yes</option>
<option value="0">No</option>
@endif
@if ($user->active == 0)
<option value="0" selected="selected">No</option>
<option value="1">Yes</option>
@endif
</select>
</div>
</td>
</tr>
</table>
<hr/>
<button type="Submit" name="save" class="btn btn-primary">
Save
</button>
<br clear="both"/>
<br/>
</div>
{{ Form::close() }}
@endforeach
答案 0 :(得分:0)
您只需要检查您的产品是否与您的用户产品匹配
如果您将product code
保存在用户的表格中,那么您的代码应该是这样的
<table>
@foreach($products as $product)
<tr>
<td style="width: 32%; padding-bottom: 5px;"><input type="checkbox" name="products[]" value="{{$product->name}}" {{$user->productCode == $product->code ? 'checked' : ''}}>
{{$product->name2}}
</td>
</tr>
@endforeach
</table>
但如果您将product name
保存在用户的表格中,那么您的代码应该是这样的
<table>
@foreach($products as $product)
<tr>
<td style="width: 32%; padding-bottom: 5px;"><input type="checkbox" name="products[]" value="{{$product->name}}" {{$user->productName == $product->name ? 'checked' : ''}}>
{{$product->name2}}
</td>
</tr>
@endforeach
</table>
关键是,您只需要在产品表和用户表项之间进行匹配。这就像过滤具有相同值的所有项目。获得所有值后,请检查它。
希望这可以帮到你;)
答案 1 :(得分:0)
如果您将产品存储在产品列中,请执行以下操作:'abc','abc1','abc2'
<?php $userProductArr = explode(',',$user->products); ?>
@foreach($products as $product)
<tr>
<td style="width: 32%; padding-bottom: 5px;">
<input type="checkbox" name="products[]" value="{{$product->name}}" {{(in_array($product->name,$userProductArr) ? checked : '' }}>
{{$product->name2}}
</td>
</tr>
@endforeach