Когда ваш вид отображается, php уже закончил компилировать весь код.К тому времени, когда ваша функция javascript будет запущена (на стороне клиента), ваш URL (созданный PHP на стороне сервера) уже будет строкой, поэтому вы не получите желаемого эффекта.
Если вы попытаетесь сгенерироватьURL-адрес с динамическими сегментами, например:
URL::action('CombinationController@readData',array('choice'=> $choice))
Вероятно, вы получите ошибку, потому что фасад PHP в PHP требует, чтобы переменная $ choice была доступна при рендеринге.
Я рекомендую изменить переменную на строку запроса, чтобы вы могли сделать что-то вроде этого:
function myFunction(choice) {
document.getElementById("demo").innerHTML = "You selected: " + choice;
$.get("{{ URL::action('CombinationController@readData') }}?choice=" + choice, function (data) {
$.each(data, function (i, value) {
var tr = $("<tr/>");
tr.append($("<td/>", {
text: value.student_id
})).append($("<td/>", {
text: value.initials + " " + value.last_name
})).append($("<input />", {
type: 'checkbox', value: value.student_id
}));
$('#student').append(tr);
});
});
}
Также вам придется изменить свой контроллер:
public function readData()
{
$choice = \Request::input('choice');
if($choice==0) {
$StuPS1ch1 = CombinationSubmits::join('student', 'combination_submits.student_id', '=', 'student.student_id')
->select('combination_submits.student_id', 'student.initials', 'student.last_name')
->where(['choice_1' => 'PS1'])
->get();
}
return $StuPS1ch1;
}