как изменить статус в базе данных, используя ajax в laravel - PullRequest
0 голосов
/ 20 июня 2020

Я использую Laravel в моем проекте, поэтому я хочу изменить статус пациента, когда он записывается на прием к врачу, чтобы он мог иметь 3 сатута, Принять, ждать (автоматически, когда пациент выбирает дату и час ), не принимаю, проблема, с которой я сталкиваюсь, - это когда я нажимаю на активную кнопку, в базе данных ничего не меняется.

Это контроллер статуса:

public function changeStatus(Request $request)
{
    $user = rdv::find($request->IDP);
    $user->Etat_de_rdv = $request->status;
    $user->save();

    return response()->json(['success'=>'Status change successfully.']);
}

Это контроллер, когда пациент записывается на прием:

public function rdv (Request $request) {

        //variables :valeurs des inputs
          $date=$request->input('time');
          $time=$request->input('date');
          $doctor=$request->input('goID');
        //array to compare inputs to existing values in database
          $att = [
            'IDD' => $doctor,
            'time' => $time,
            'date' => $date
                ];

            $data=rendezvous::where($att)->first();
        //required inputs 
        $this->validate($request, [
            'np' => 'required', 
            'tel' => 'required',
            'date' => 'required',
            'time' => 'required',
        ]);
        //ajout in rdv
        $rdv = new rendezvous() ;
        $patient_id=$request->session()->get('patient_id');
        $rdv->Nom_et_prénom=$request->input('np');
        $rdv->Numéro_de_téléphone=$request->input('tel');
        $rdv->IDD=$request->input('goID');
        $rdv->date=$request->input('time');
        $rdv->time=$request->input('date');
        $rdv->IDP=$patient_id;

        //test if data exist
           if ($data!==null) {
              return redirect()->back()->withErrors('Heure et date occupeé,Vous devez choisir un autre !' ) ;
           }

        $rdv-> save();
        return redirect("/rendezvous_$doctor")->withSuccess('Rendez-vous enregister, veillez consulter l"etat de votre rdv !' ) ; 

    }

Это вид, на который доктор видит все назначения;

<h3> Vos patient :</h3>
 @foreach($pat as $lo)
@if ($lo->IDD== $med->ID)
<div class="admin">
<div class="info">
<h3> {{ $lo->Nom_et_prénom  }} </h3>
<p>{{ $lo->Numéro_de_téléphone }}</p>
<p>{{ $lo->date}}</p>
<p>{{ $lo->time }}</p>
 <input data-id="{{$lo->IPD}}" class="toggle-class" type="checkbox" data-onstyle="success" data-offstyle="danger" data-toggle="toggle" data-on="Accepter" data-off="Temps charger" {{ $lo->Etat_de_rdv ? 'checked' : '' }}>
</div>
 </div>
 @endif
 @endforeach  

Это ajax:

   <script>
      $(function() {
        $('.toggle-class').change(function() {
            var Etat_de_rdv = $(this).prop('checked') == true ? Accepter : Temps charger; 
            var id = $(this).data('IDP'); 
            $.ajax({
                type: "GET",
                dataType: "json",
                url: '/changeStatus',
                data: {'Etat_de_rdv': 'status', 'IDP': id},
                success: function(data){
                  console.log(data.success)
                }
            });
        })
      })
    </script>

1 Ответ

0 голосов
/ 20 июня 2020

Вы не передаете статус внутри вашего ajax, но Etat_de_rdv, который всегда содержит значение 'status'. Проверьте прокомментированную строку ниже:

        var Etat_de_rdv = $(this).prop('checked') == true ? Accepter : Temps charger; 
        var id = $(this).data('IDP'); 
        $.ajax({
            type: "GET",
            dataType: "json",
            url: '/changeStatus',
            data: {
                'status': 'your_value', //Should be like this
                'IDP': id
            },
            success: function(data){
              console.log(data.success)
            }
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...