Вы должны использовать AJAX для этого, если вы не знакомы с ним, вы можете прочитать об этом здесь: https://www.w3schools.com/xml/ajax_intro.asp
Я бы также использовал JQuery чтобы сделать вещи проще. Таким образом, вы можете сделать это следующим образом:
- Когда в раскрывающемся списке выбран тип цели, система переходит к таблице целей (Цель). Он отображает итоговое значение weighted_score на основе employee_id и goal_type_id.
здесь вы должны отправить в бэкэнд тип цели, выбранный пользователем, для этого установите событие изменения в комбинированном ящике, который вызывает AJAX request:
$('#goal_type').change(request_goals($('#goal_type').val()))
И функция request_goals
должна быть такой:
function request_goals(){
$.ajax({
method: "GET",
dataType: 'json',
url: /*YOUR CONTROLLER URL*/,
error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
console.log("error");
},
success: function (response) {
/* HERE DO WHAT YOU NEED */
}
}
Вам нужно будет создать маршрут и функцию контроллера, которая возвращает данные, которые вы need.
Когда пользователь пытается ввести данные в текстовое поле веса (weighted_score), приложение добавляет значение в текстовом поле к результату в номере один (1) выше. Если результат больше, чем max_score в goal_types (GoalType) на основе родительского max_score, то отображается сообщение об ошибке.
Здесь вы должны сделать тот же трюк, установить обработчик событий в weighted_score поле, которое отправляет запрос ajax.
Я надеюсь, что это может помочь вам.