JQuery输入更改,ajax发送请求到laravel

时间:2018-04-27 17:45:41

标签: jquery ajax laravel

我正在尝试在没有重新加载页面的情况下输入他的id时加载关于某人的消息。问题是没有显示要检索的数据。我正在使用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 :(得分:0)

首先,确保你确实得到了一些回应

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

接下来,应该是一个on change函数,也受到你正在使用的jquery版本的影响

$("#national_id").on('change', function(){

答案 1 :(得分:0)

通常情况发生时,它与Laravel后端功能中的错误有关。在Eloquent中,为了使用find和特定列检索模型,您应该使用:

Person :: find($ nationalId,[&#39; fName&#39;,&#39;姓名缩写&#39;,&#39; lName&#39;,&#39; dob&#39;,&# 39;村&#39;])

人::选择([&#39; FNAME&#39;&#39;缩写&#39;&#39; L-NAME&#39;&#39; DOB&#39;&#39;村& #39;]) - &GT;发现($ nationalId);

现在应该可以了。