我有一个表显示来自db的数据,在状态栏中,我已经选择了使用select更改状态的选项。我希望能够通过更改选项更新“状态”列,我希望能够使用一个按钮更改多行。以前我可以改变,但每行必须有一个按钮。
//状态列的视图代码如下:
<td>
<select class="btn pull-left" name="status[]" id="status[]" onchange="javascript:changeStatus('{{$row->id}}','{{$arr}}')">
<option>{{ $row->status }}</option>
<option>Eligible</option>
<option>Not Eligible</option>
</select>
</td>
</tr>
<input name="recordid[]" id="recordid[]" type="hidden">
<?php $arr++;?>
@endforeach
<script type="text/javascript">
function changeStatus(id,arr){
//alert(id);
// $('#recordid['+arr+]').val(id);
// $("input[name='recordid']").eq(1).val(id);
$('[id^=recordid]').eq(arr).val(id);
// document.status.submit();
}
</script>
//控制器
public function select(){
$status = Input::get('status');
$id = Input::get('recordid');
// print_r($id);
// print_r($status);exit;
$user = User::find($id);
If (isset($status)){
$user->status = $status;
$user->save();
}
return View::make('search')->with('status',$status);
}
从id和status的print_r我将获得此输出,如果我更改选项也获得id,如下面的代码中我更改数组1和2中的状态。
数组([0] =&gt; 2 [1] =&gt; 3 [2] =&gt; [3] =&gt;)数组([0] =&gt;志愿者[1] =&gt;志愿者[2] ] =&gt;志愿者[3] =&gt;符合条件)
答案 0 :(得分:0)
您可以通过以下方式更新多条记录:
User::>whereIn('id', $id)->update(['status' => $status]);
完整方法:
public function select(){
$status = Input::get('status');
$id = Input::get('recordid');
for ($i = 0; $i <= count($status) - 1; $i++) {
User::where('id', $id[$i])->update(['status' => $status[$i]]);
// Even better
// User::find($id[$i])->update(['status' => $status[$i]]);
}
return View::make('search')->with('status',$status);
}