// Local/asystgrade/amd/src/marks.js define(['core/ajax', 'core/log'], function(ajax, log) { return { init: function() { window.addEventListener('load', function() { const params = new URLSearchParams(window.location.search); const qid = params.get('qid'); const slot = params.get('slot'); window.console.log('marks.js initialized'); console.log('Request about to be sent'); // До AJAX вызова // Выполняем AJAX запрос через core/ajax let request = ajax.call([{ methodname: 'local_asystgrade_update_grade', // Имя вашего PHP метода args: {qid: qid, slot: slot}, }]); // console.log('Request completed', response); // После получения ответа request[0].done(function(response) { window.console.log('Response received:', response); // Печатает весь ответ if (response.status === 'success') { updateMarks(response.grades, response.inputNames, response.maxmark); } else { log.error(response.message); } }).fail(function(ex) { window.console.error('Ошибка AJAX запроса: ', ex); }); }); } }; /** * Обновляет оценки на странице. * * @param {Array} grades - Массив оценок. * @param {Array} inputNames - Массив имен input элементов. * @param {number} maxmark - Максимальная оценка. */ function updateMarks(grades, inputNames, maxmark) { // Обновляем DOM элемент на странице с оценками grades.forEach(function(grade, index) { const predictedGrade = grade.predicted_grade === 'correct' ? maxmark : 0; const inputName = inputNames[index]; const inputElement = document.querySelector(`input[name="${inputName}"]`); if (inputElement) { inputElement.value = predictedGrade; // Console.log(`Updated input: ${inputName} with grade: ${predictedGrade}`); } else { // Console.warn(`Input not found: ${inputName}`); } }); } });