我正在尝试在没有重新加载页面的情况下输入他的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;
}
当我输入国民身份证时,我只收到“发生错误”的消息。
答案 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);
现在应该可以了。