2017-10-06 1 views
0

J'ai une expérience avec l'appel ajax avec PHP de base. Maintenant, je veux dans le cadre laravel.So c'est difficile à mettre en œuvre. En fait, j'ai la source en voie d'Ajax appel pour obtenir des données en utilisant laravel et routes

"source: "{{route('client.details')}}"," 

Je veux mettre cette route dans l'URL, mais comment je ne knw. J'ai essayé comme ci-dessous,

$.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); 
} 
}); 

code du contrôleur

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; 
} 

et mon itinéraire est

Route::get('/client/search/details', '[email protected]')->name('client.details'); 

Je ne sais pas quel est le problème. Im obtenir une erreur dans la partie ajax url. Quelqu'un peut-il me suggérer quelle est la solution? Merci d'avance

+0

Je serai Supposons que vous soyez supposé renvoyer une instance de réponse, pas un tableau d'une méthode de contrôleur. Essayez 'return response() -> json ($ searchResult);' au lieu de 'return $ searchResult;' – bassxzero

Répondre

0

AJAX fonctionne côté client et n'a donc aucune connaissance de vos routes nommées. Les routes nommées fonctionnent du côté serveur, à l'intérieur de Laravel.

Vous devez dire AJAX pour obtenir l'URL complète:

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

0

Remplacer url: '/ client/détails' par url: « {{itinéraire ('') client.details }} »,

Alors code complet se ressembler à ceci dans la section ajax: -

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

Maintenant ça marche mais ma requête retourne une valeur vide .., –