Php Laravel 5.5,复选框列表(产品),如果用户有产品,则必须选中这些产品的复选框
我有一个名为products的用户表,在添加用户时有一个复选框列表(产品),我可以在勾选复选框时添加产品 问题在于编辑用户,如果用户有产品(abc),则应在编辑用户屏幕中选中(勾选)abc复选框。我不能那样做。请帮忙。 提前谢谢。下面是代码 我就是这样用复选框来称呼产品的Php Laravel 5.5,复选框列表(产品),如果用户有产品,则必须选中这些产品的复选框,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我有一个名为products的用户表,在添加用户时有一个复选框列表(产品),我可以在勾选复选框时添加产品 问题在于编辑用户,如果用户有产品(abc),则应在编辑用户屏幕中选中(勾选)abc复选框。我不能那样做。请帮忙。 提前谢谢。下面是代码 我就是这样用复选框来称呼产品的 @foreach($users as $user) {{ Form::open([ 'files' => true, 'method' => 'post', 'route' => 'users.edit',
@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
@foreach($users作为$user)
{Form::open(['files'=>true,'method'=>'post','route'=>'users.edit','class'=>'Form'])}
创建用户
@if(会话(‘警报’)
{{session('alert')}
@恩迪夫
用户名
{{Form::text('username',$user->username,['class'=>'Form control'])}
新密码
{{Form::password('password',array('class'=>'Form control'))}
角色
@如果($user->role==“admin”)
管理
使用者
@恩迪夫
@如果($user->role==“user”)
使用者
管理
@恩迪夫
产品类型
(更改后请重新登录)
@foreach($products as$product)
{{$product->name2}
@endforeach
活跃的
@如果($user->active==1)
对
不
@恩迪夫
@如果($user->active==0)
不
对
@恩迪夫
拯救
{{Form::close()}}
@endforeach
您可以使用Laravel Collective
,选择
字段来实现这一点,请查看以下代码:
Form::select('select_list1', ['user' => 'User', 'admin' => 'Admin'], $user->role, ['placeholder' => 'Choose a role']);
第一个参数表示此字段的名称
第二个参数表示希望按顺序显示的数据数组key=>value
第三个参数表示默认值
如果没有默认值,可以使用null
第四个参数(可选)表示要在表单元素上使用的属性数组(类、占位符、id等)检查用户
是否存在产品匹配产品列表中的产品并使其处于选中状态
<?php $products_array = explode(",",$user->products);?>
@foreach($products as $product)
<tr>
<td style="width: 32%; padding-bottom: 5px;">
<input type="checkbox" name="products[]" value="{{$product->name}}" @if(in_array($product->name2, $products_array)) checked @endif>
{{$product->name2}}
</td>
</tr>
@endforeach
@foreach($products as$product)
name2,$products_array))选中@endif>
{{$product->name2}
@endforeach
您只需检查您的产品是否与您的用户产品匹配
如果在用户表中保存产品代码
,则代码应如下所示
<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>
<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>
关键是,您只需要在产品表和用户表项之间进行匹配。这类似于筛选具有相同值的所有项目。得到所有值后,检查它
希望这能对您有所帮助;) 如果您将产品存储在如下产品列中:“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>
@foreach($products as$product)
名称,$userProductArr)?选中:'}}>
{{$product->name2}
@endforeach太好了!!,若用户有一个产品,那个么这是可行的。但是,如果用户有多个产品,当我使用内爆保存多个产品时(例如,扫描仪、墨水),您可以使用if
块中的strpos
检查该列中是否存在产品名称user@HashaamAhmed我已经编辑了我的答案,它将与您的scenarios@HashaamAhmed现在没事了,如果用户检查了多个产品,请使用更新的代码重试,然后如何存储?@DsRaj$products=introde(“,”,$request->get('products”)$user=user::create(['name'=>'example','username'=>$request->username,'password'=>bcrypt($request->password),'role'=>$request->select_list1,'products'=>$products,'active'=>$request->select_list2,]);return redirect()->back()->带有('alert','User Added');我的意思是如何将其存储在数据库中,比如说,将名称存储为字符串Hashaam,然后将单个产品名称存储为“abc”,但多个名称又如何呢?abc,abc(这就是我如何将其保存在db中的方式)谢谢您的解释:),但我尝试过,只有当用户只有一个产品时,它才起作用。对于多个产品,我在上面标记了一个ans,它工作得非常好:)