JQuery ввод при изменении, ajax отправка запроса в laravel - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь загрузить сообщение о человеке, когда его идентификатор введен без перезагрузки страницы. проблема в том, что данные для извлечения не отображаются. Я использую фреймворк Laravel и JQuery, но я не очень знаком с JQuery и тем, как laravel обрабатывает данные AJAX (может быть, поэтому я застрял).

моя HTML-страница

<input type="text" class="form-control" name="national_id" id="national_id" placeholder="Enter National Id Number">
<div class="col-sm-offset-2 col-sm-10">
<p class="text-success" id="person"></p>
<p class="text-danger" id="error"></p>
</div>

мой документ Js

$("#national_id").change(function(){

    var message = null;
    var data = $(this).serialize();
    $.ajax({
        type: "POST",
        dataType: "json",
        url: "./getPerson",
        data: data,
        success: function(data) {
            message = "Person: " + data['fName'] + " from " + data['village'];
            document.getElementById("person").innerHTML = message;

        },
        error: function () {
            document.getElementById("error").innerHTML = "Error occurred";
        }
    });
});

функция моего контроллера

public function getPerson(Request $request){
        $nationalId = 123456;
        //$nationalId = $request->input('national_id');

        $person = Person::find($nationalId)->get(['fName','initials','lName','dob','village'])->toJSON();


        return $person;
    }

при вводе национального идентификатора я получаю только сообщение «произошла ошибка».

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Обычно, когда это происходит, это связано с ошибкой в ​​вашей бэкэнд-функции с Laravel. В Eloquent для извлечения модели с помощью find и определенных столбцов вы должны использовать:

Person :: find ($ nationalId, ['fName', 'initials', 'lName', 'dob', 'village'])

или

Person :: выбрать ([ 'Fname', 'инициалами', 'LName', 'DOB', 'деревня']) -> находка ($ nationalId);

И это должно работать сейчас.

0 голосов
/ 27 апреля 2018

Прежде всего, просто убедитесь, что вы действительно получите какой-то ответ

$person = Person::findOrFail($nationalId)->get(['fName','initials','lName','dob','village'])->toJSON();

Далее должна быть включена функция изменения, также зависит от того, какую версию jquery вы используете

$("#national_id").on('change', function(){
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...