Ajax使用laravel调用获取数据和路由
问题描述:
我有使用核心PHP调用ajax的经验。现在我想在laravel框架中,所以很难实现。其实我有来源的Ajax使用laravel调用获取数据和路由
"source: "{{route('client.details')}}","
我希望把这个URL路径的路径,但我怎么不KNW。我试图像下面,
$.ajax({
method: 'GET',
url: '/client/details'
success: function(response){ // What to do if we succeed
$('#invoiceNo').val(response.item.invoiceNo);
$('#DueDate').val(response.item.DueDate);
}
});
控制器代码
public function search2(Request $request)
{
$s= Input::get('term');
$clients = Invoice::select("invoiceNo" ,"Total", "invoiceDate", "DueDate")->where('status',['sent,Partially paid'])->where('client_id',$request->id)->get();
if(count($clients) == 0){
$searchResult[] = "No Item found";
}
else{
foreach ($clients as $key => $value) {//fill here too
$searchResult[] = ['invoiceNo' => $value->invoiceNo, 'Total' => $value->Total , 'invoiceDate' => $value->invoiceDate , 'DueDate' => $value->DueDate];
}
}
return $searchResult;
}
和我的路线是
Route::get('/client/search/details', '[email protected]')->name('client.details');
我不知道是什么的问题。 Im在Ajax网址部分出现错误。任何人都可以告诉我解决方案是什么? 在此先感谢
答
AJAX在客户端工作,因此它不知道您的命名路线。命名的路由在Laravel内部的服务器端工作。
你必须告诉AJAX来获取完整URL:
$.ajax({ method: 'GET', url: '/client/search/details' ...
答
更换网址: '/客户/详细信息'通过网址:“{{路线( 'client.details') }}”,
然后完成代码看起来像这样在阿贾克斯节: -
method: 'GET',
url: "{{route('client.details')}}",
success: function(response){ // What to do if we succeed
$('#invoiceNo').val(response.item.invoiceNo);
$('#DueDate').val(response.item.DueDate);
}
});
+0
现在它的工作,但我的查询返回空值.., –
我是假设你想要返回一个响应实例,而不是来自控制器方法的数组。尝试'返回response() - > json($ searchResult);'而不是'返回$ searchResult;' – bassxzero