如何通过单击按钮更改数据库中的状态

时间:2020-06-17 22:39:10

标签: jquery sql laravel

我在laravel项目中工作,所以我想在他任命医生时改变患者的状况,所以他可以有3个坐姿,接受,等待,不接受,我问我该如何改变只需单击按钮就可以了,谢谢。

这是主治医生,医生编辑了一个约会:

  public function edit ($id) {

        $rdv= rendezvous::find($id);
        return view ('/edit', ['modifier'=>$rdv]); }

这是医生可以看到他的病人并编辑或接受或拒绝约会的视图

      <h3> the patients :</h3>
                    @foreach($patient as $pat)
                    @if ($pat->IDD== $doctor->ID)
                    <div class="admin">

                      <div class="info">
                        <h3> {{ $pat->Name_Last_Name    }} </h3>
                        <p>{{ $pat->phone_number }}</p>
                      </div>
                    </div>
<a class="btn btn-info" href="{{url('edit/'.$pat->id) }}" > edit </a>
                    @endif

    @endforeach 

1 个答案:

答案 0 :(得分:1)

感谢您的澄清。

让我们考虑一下,一旦您被任命,身份将自动为not-accepted。单击chanage status btn后,它将更改为waiting,最后是accepted

在您的刀片中-

<a onclick="status({{$pat->id}})" class="btn">Change Status</a>

在js中-

function status(id) {
    $.ajaxSetup({
      headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
      }
    });
    $.ajax({
      type: "POST",
      url: '/update-status',
      data: {
        'id': id
      },
      success: function(data){
           //redirect where you want..
      },
    });
};

在您的控制器中-

public function status(Request $request){
 $id = $request->id;

 $status = rendezvous::where('id', $id)->value('status');

 if($status === 'not-accepted'){
  $status = 'waiting';
 } elseif($status === 'waiting'){
  $status = 'accepted';
}
rendezvous::where('id', $id)->update(['status'=> $status]);

return response()->json('success');
}

希望这会起作用。