2017-10-06 47 views
0

我有使用核心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網址部分出現錯誤。任何人都可以告訴我解決方案是什麼? 在此先感謝

+0

我是假設你想要返回一個響應實例,而不是來自控制器方法的數組。嘗試'返回response() - > json($ searchResult);'而不是'返回$ searchResult;' – bassxzero

回答

0

AJAX在客戶端工作,因此它不知道您的命名路線。命名的路由在Laravel內部的服務器端工作。

你必須告訴AJAX來獲取完整URL:

$.ajax({ method: 'GET', url: '/client/search/details' ...

0

更換網址: '/客戶/詳細信息'通過網址:「{{路線( '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

現在它的工作,但我的查詢返回空值.., –