[英]Updating db with select options (Laravel 4)
我有一個表,其中顯示了來自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中,如果我也使用get id來更改選項,則我將獲得此輸出,如下面的代碼所示,其中我更改了數組1和2中的狀態。
數組([0] => 2 [1] => 3 [2] => [3] =>)數組([0] =>志願者[1] =>志願者[2] =>志願者[3] =>符合條件)
您可以像這樣更新多個記錄:
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.