У меня есть выпадающий список в виде лезвия. Я хочу отправить значение выбранного элемента в контроллер немедленно на обмен. У меня есть 2 маршрута в сети. php:
Route::get('/plots', 'PlotController@index');
Route::get('/plots/{testId}', 'PlotController@getData');
Первый заполняет раскрывающийся список. Предполагается, что второе посылает значение выпадающего списка контроллеру, который извлекает данные из mysql и отправляет данные обратно в представление, которое выводит aws график. Я могу заставить выпадающий список заполняться, но я не могу понять, как отправить выбранное значение в контроллер. Я пытаюсь использовать ajax, чтобы сделать это так:
$(document).ready(function() {
$('#sel_test').change(function() {
var testId = $(this).val();
console.log("testId=" + testId);
$.ajax({
url: 'plots/' + testId,
type: 'get',
dataType: 'json',
success: function(response) {
console.log("success");
}
});
});
});
Вывод testId на консоль правильный, но он никогда не доберется до контроллера. Я вижу в консоли ошибку:
GET http://homestead.test/plots/1 500 (Внутренняя ошибка сервера)
Я довольно новичок в laravel и нахожу это крайне запутанным. Может кто-нибудь объяснить правильный способ сделать это?
РЕДАКТИРОВАТЬ: После тестирования и подтверждения правильности ответа Риана, я затем попытался реализовать реальный код, который, конечно, гораздо сложнее. Вместо того, чтобы контроллер возвращал ввод test_id:
return $request->test_id;
Он на самом деле возвращает более сложную структуру:
return view('plot')
->with('measurements',json_encode($result))
->with('events',json_encode($timeline))
->with('limits',json_encode($limits));
Когда я раскомментирую исходный код контроллера, включая приведенный выше раздел возврата, он кажется, влияет на способность контроллера вернуть что-либо вообще. Вот первые несколько строк метода getData PlotController:
public function getData(Request $request) {
Log::debug("made it to PlotController.php@getData");
Log::debug("test_id="+$request->testId);
А вот вывод журнала:
[2020-02-23 16:43:52] laravel .DEBUG: сделано в PlotController. php@getData
Вторая строка ничего не выводит. Вот что я вижу в консоли javascript после выбора элемента из выпадающего списка:
testId = 49 jquery .min. js: 2 GET http://homestead.test/get-data-by-id?test_id=49 500 (внутренняя ошибка сервера)
Есть идеи?