Проверка на совпадение с AJAX и PHP - PullRequest
0 голосов
/ 09 апреля 2020

Так что у меня есть небольшая проблема при попытке проверить, существует ли перекрытие в базе данных. Я пытался проверить это с помощью скрипта AJAX, перенаправляющего на функцию PHP, которая использует запрос SQL, но когда я пытаюсь это сделать, он всегда говорит мне, что эта ошибка не перекрывается: The Response content must be a string or object implementing __toString(), "boolean" given.

Я отправляю вам свои AJAX и PHP коды, чтобы они могли вам помочь:

AJAX скрипт:

$('#add_formulaire').click(function()
{
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $.ajax({
        type: 'POST',
        url: 'checkOverlap',//Redirecting to a route, which redirects to the PHP function
        success: function () {
            alert("overlap");//Debug alert
            $reponse = confirm("Il y a un chevauchement dans les horaires. Voulez-vous tout de même continuer ?");
            if($reponse)
            {
                $.ajax({
                    type: 'POST',
                    url: 'add_reservation',
                    data: {
                        horaire: $("#sel_liste_horaires").val(),
                        //annee : $("#anneeCours").val(),
                        quadrimestre: $("#quadrimestre").val(),
                        dateReservation: $("#datepicker").val(),
                        event: $("#event").val(),
                        typeCours: $("#typeCours").val(),
                        enseignant: $("#enseignant").val(),
                        local: $("#local").val(),
                        heureDebut: $("#heureDebut").val(),
                        heureFin: $("#heureFin").val(),
                        nombreSemaine: $("#nbSemaines").val()
                    },
                    dataType: 'json',

                    success: function(data)
                    {
                        alert("La réservation a été ajoutée.");
                        console.log(data);
                        //$('#addFormulaire').trigger("reset");
                        $("#addFormulaire.close").click();
                    },
                    error: function(data)
                    {
                        alert("alerte erreur");
                        console.log(data);
                        var errors = $.parseJSON(data.responseText);
                        $('#add-task-errors').html('');
                        $.each(errors.messages, function(key, value) {
                            $('#add-task-errors').append('<li>' + value + '</li>');
                        });
                        $("#add-error-bag").show();
                    }
                });
            }
            else
            {
                alert('chevauchement annulé');//Debug alert
            }
        },
        error: function () {
            alert("pas d'overlap");//Debug alert
        }
    });

PHP скрипт:

public function check($borneInferieure = 8, $borneSuperieure = 18){
    $request = new Request();
    $valeurInferieure = $request->heureDebut;
    $valeurSuperieure = $request->heureFin;
    $requete = DB::raw("
SELECT * 
  FROM reservations
    INNER JOIN locals ON reservations.local_id = locals.id
    INNER JOIN enseignants ON reservations.enseignant_id = enseignants.id
    WHERE " . $valeurInferieure . " <= " . $borneSuperieure . "
    AND " . $valeurSuperieure . " >= " . $borneInferieure . "
    AND reservations.local_id != locals.id
    AND reservations.enseignant_id != enseignants.id");
    if ($requete)
        return true;
    else
        return false;
}

Заранее благодарю за ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...