обращение по внутреннему id к json
Подскажите, пожалуйста, имеется несколько JSON файлов, внутри которых есть ID. Выглядят они примерно так:
{
"id":"fak4_kurs4_9",
"faculty":"4",
"course":"4",
"group": "9",
"schedule": [
{
"day": "понеділок",
"pair": "3",
"start": "12:05",
"end": "13:25",
"subject": "Л Моделювання та аналіз ПрЗаб В",
"room": "Б-505",
"group": "вся",
"teacher": ""
},
И файл ajax.js который вызывает данный json:
jQuery(document).ready(function($)
{
$( document ).ready(function()
{
$("#submit_form").click(
function(){
sendAjaxForm('result_form', 'formdata', 'action_ajax_form.php');
return false;
}
);
});
function sendAjaxForm(result_form, formdata, url) {
$.ajax({
url: url, //url страницы (action_ajax_form.php)
type: "POST", //метод отправки
dataType: "html", //формат данных
data: $("#"+formdata).serialize(), // Сеарилизуем объект
success: function(response) { //Данные отправлены успешно
result = $.parseJSON(response);
console.log(result);
if(result.grupa == 'fak4_kurs4_9')
{
var scheduleTable = document.getElementById('schedule');
info = document.getElementById('info');
requestURL = 'data_rozklad_FIT_4_9.txt'; //файл находится в той же папке, что и html-файл, который к нему обращается
};
request = new XMLHttpRequest();
request.open('GET', requestURL);
request.onload = function(e)
{
if (request.readyState === 4)
{
if (request.status === 200)
{
//console.log(request.response);
var dataTable = JSON.parse(request.responseText);
getTableInfo(dataTable);
}
else
{
console.error(request.statusText);
}
}
};
request.onerror = function(e)
{
console.error(request.statusText);
};
request.send();
function getTableInfo(data)
{
info.innerHTML =
'<p>Факультет: ${data.faculty}<p>
<p>Курс: ${data.course}</p>
<p>Група: ${data.group}</p>
<p>Навчальний тиждень: <p>';
let headerTr = document.createElement('tr');
headerTr.innerHTML =
'<th>День</th><th>Пара</th><th>Старт пари</th>
<th>Кінець пара</th><th>Предмет</th><th>Кабінет</th>
<th>Група</th><th>Викладач</th>';
scheduleTable.appendChild(headerTr);
//console.log(Array.isArray(data.schedule));
data.schedule.forEach(function(elem)
{
let tr = document.createElement('tr');
tr.innerHTML =
'<td>${elem.day}</td><td>${elem.pair}</td>
<td>${elem.start}</td><td>${elem.end}</td>
<td>${elem.subject}</td><td>${elem.room}</td>
<td>${elem.group}</td><td>${elem.teacher}</td>';
schedule.appendChild(tr);
});
}
//$('#result_form').html('група: '+result.grupa);
},
error: function(response) { // Данные не отправлены
$('#result_form').html('Ошибка. Данные не отправлены.');
}
});
}
});
`
Есть файл action_ajax_form.php
<?php
if (isset($_POST["grupa"])) {
// Формируем массив для JSON ответа
$result = array(
'grupa' => $_POST["grupa"]
);
// Переводим массив в JSON
echo json_encode($result);
}
?>
И index.html, стоит ли приводить код, не знаю?
Я в форме выбираю факультет, курс, группу, данный запрос обрабатывается аяксом и загружается на страницу содержимое файла fak4_kurs4_9.txt. Посоветовали вызывать файл по внутреннему ID, а не по названию файла Не могу разобраться, как вызывать файл по ID, а не по названию файла. Мне подсказали про метод map, но не могу понять как его применить к своему файлу.
Ответы (1 шт):
Как вообще звучит изначально постановка здачачи? По выбранным факультету, курсу и группе найти расписание и вывести его, а расписания разложены по файлам в формате json? Что за метод map и куда его тут применять тоже не ясно. Про него стоит просить у советчика.