現在、クイズサイトを勉強がてら制作しています。
10問解いて正答数を出すところまではいっているのですが、その正答数に合わせて簡単な棒グラフを表示させたいです。
そこで質問なのですが、CHART.JSなどを利用して正答数に合わせて棒グラフにすることは可能なのでしょうか?
できるのなら、アドバイスを頂きたいです。
marubatu.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="style.css"> <script src="script.js"></script> <script src="js.cookie.js"></script> <title>○×クイズ</title> </head> <body> <div class="wrapper"> <h1>まるばつクイズ</h1> <div id="question"></div> <div id="buttons"> <input type="button" class="button" value="○" onclick="hantei(1)"> <input type="button" class="button" value="×" onclick="hantei(2)"> </div> </div> <script type="text/javascript" src="script.js"></script> </body> </html> ``` script.js ```javascript var qa = [ ['「テトリス(ゲーム)」を開発したのは、日本人だ。', 2], ['生きている間は、有名な人であっても広辞苑に載ることはない。 ', 1], ['現在、2000円札は製造を停止している。', 1], ['パトカーは、取り締まっている最中であれば、どこでも駐車違反になることはない。', 2], ['昆虫の中には、口で呼吸する昆虫もいる。 ', 2], ['一般的に体の水分は、男性より女性のほうが多く含まれている。', 2], ['たとえ1cmの高さであっても、地震によって起こるのは全て「津波」である。', 1], ['1円玉の直径は、ちょうど1cmになっている。', 2], ['塩はカロリー0である。 ', 1], ['「小中学校は、PTAを作らなければならない」と法律で定められている。', 2] ]; var count = 0; var correctNum = 0; window.onload = function() { // 最初の問題を表示 var question = document.getElementById('question'); question.innerHTML = (count + 1) + '問目:' + qa[count][0]; }; // クリック時の答え判定 function hantei(btnNo) { if (qa[count][1] == btnNo) { correctNum++; } //cookie(nameにcorrectNumいれる) Cookies.set('name', correctNum); if (count == 9) { window.location.href = 'kekka.html'; // 通常の遷移 } ``` kekka.html ```html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="style.css"> <script src="js.cookie.js"></script> <title>結果</title> </head> <body> <p>結果</p> <script> const name = Cookies.get('name'); document.write("正答数は"+name+"です"); </script> <br> <br> <button onclick="location.href='marubatu.html'">最初にもどる</button> </body> </html> ```
「CHART.JS 棒グラフ」で探して見つからない内容ではないと思いますが。
ただいずれにしてもCookieに保存するのは大抵位置的な情報だけです。
半永久的に保存したいのであれば、ユーザーから削除、クリアできるCookieやWebStorageを使うのは間違いです。サーバーサイドの言語(PHPなど)を介してデータベースを利用してください。