-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathranking_show.js
59 lines (49 loc) · 1.89 KB
/
ranking_show.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// References to HTML elements:
var sizeNumber = document.getElementById("ranking-size-value");
var rankingListDiv = document.getElementById("ranking-list");
// Setting onclick attributes to HTML elements:
document.getElementById("rankingPlusButton").setAttribute("onclick", "javascript: extendSize()");
document.getElementById("rankingMinusButton").setAttribute("onclick", "javascript: reduceSize()");
// Other attributes:
var rankingList = null;
readFile();
// Reaction for clicking -/+ buttons:
function reduceSize() {
if (parseInt(sizeNumber.innerHTML) > 4) {
document.getElementById("ranking-size-value").innerHTML = parseInt(sizeNumber.innerHTML) - 1;
buildRanking();
}
}
function extendSize() {
if (parseInt(sizeNumber.innerHTML) < 6) {
document.getElementById("ranking-size-value").innerHTML = parseInt(sizeNumber.innerHTML) + 1;
buildRanking();
}
}
// Reading ranking from .json file by using PHP:
function readFile() {
let xhr = new XMLHttpRequest();
xhr.open("GET", "ranking_show.php", true);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
rankingList = JSON.parse(this.responseText);
buildRanking();
}
};
xhr.send();
}
// Building ranking list and displaying it in HTML:
function buildRanking() {
let keyName = "size" + sizeNumber.innerHTML;
rankingListDiv.innerHTML = "";
for (let i = 0; i < rankingList[keyName].length; i++) {
let record = document.createElement("div");
let nickText = document.createElement("p");
nickText.innerHTML = `${i+1}. ${rankingList[keyName][i].nick}`;
record.appendChild(nickText);
let scoreText = document.createElement("p");
scoreText.innerHTML = rankingList[keyName][i].score;
record.appendChild(scoreText);
rankingListDiv.appendChild(record);
}
}