使用选择选项更新数据库(Laravel 4)

时间:2015-10-12 02:05:58

标签: php mysql laravel

我有一个表显示来自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;符合条件)

1 个答案:

答案 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);
}