У меня проблема с Ajax, и я не знаю, как с этим бороться. У меня есть контроллер, который получает ответ от внешнего API. В этом контроллере передаются переменные в запрос API. Результат переходит к представлению. В этом представлении у меня есть выпадающий список с валютой. Я хочу, когда пользователь выбирает другую валюту, новый запрос будет отправляться в API и генерировать новое представление.Laravel 5.3 Ajax show vew
Ниже приводится файл и код.
web.php
Route::get('/home', '[email protected]');
Route::post('/home','[email protected]');
HomeController.php
public function nbp(Request $request)
{
$data = $request->all();
if($request->ajax() && $request->isMethod('post')){
$data = response()->json($data);
$data = $data->getContent();
$data = json_decode($data, true);
$currency = $data['currency'];
Debugbar::info($currency);
}else{
$currency = 'EUR';
}
$tabeA = 'a';
// Create a client with a base URI
$client = new GuzzleHttpClient(['base_uri' => 'http://api.nbp.pl/api/'],['headers'=>['content-type'=> 'application/json']]);
// Send a request
$response = $client->request('GET', 'exchangerates/rates/'.$tableA.'/'.$currency);
$response->getStatusCode();
// 200
//$contentType = $response->getReasonPhrase();
// 'application/json; charset=utf8'
$currency = json_decode($response->getBody());
$data = $currency->rates;
$data2 = $data[0]->mid;
if($request->ajax() && $request->isMethod('post')){
return view('home',compact('currency'))->render();
}else{
return view('home',compact('currency'));
}
}
script.js
$('#currencyNameA').change(function() {
$.ajax({
type:'post',
dataType: 'json',
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
url: '/home',
data: { currency : $('#currencyNameA').val()},
success: function(data){
},
complete: function(data){
}
});
});
Запрос на API должен быть http://api.nbp.pl/api/ $ стол/$ валюта
Пример: http://api.nbp.pl/api/a/USD
Вы можете предоставить представление и код javascript? – madalinivascu
где вы показываете результат, который исходит из api? – madalinivascu
return view ('home', compact ('currency')); –