プロが教える店舗&オフィスのセキュリティ対策術

Javascriptを使ったタイピングができるwebページについてですが、下記のソースコードでは、表示されるワードを配列としてあつかっていますが、これをMySQLのデータベースに入れて、そこから取り出したいのですが、どのようにすればよいのかがわかりません。よい方法がありましたら教えてください。


<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.1 …
<script>
// ★ワード ↓
var wordList = [
"Alfa", "Bravo", "Charlie", "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India",
"Juliett", "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", "Romeo",
"Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", "Yankee", "Zulu"
];

// 時間制限
var timeLimit = 30;

var timer1;
var wordStr;
var wordChars;
var charIndex;
var messageArea;
var wordArea;
var typeArea;
var score;
var timeLeft;

window.onload = function (){
messageArea = document.getElementById("message");
wordArea = document.getElementById("word");
typeArea = document.getElementById("type");
startButton = document.getElementById("start-button");
}

// 3秒後に開始
function onStartButtonClick(){
messageArea.textContent = "Ready?";
setTimeout("startTyping()", 3000);
}

// 開始
function startTyping(){
score = 0;
timeLeft = timeLimit;
nextWord();
countDown();
timer1 = setInterval("countDown()", 1000);
startButton.disabled = true;
}

// 終了
function stopTyping(){
clearInterval(timer1);
wordChars = [];
messageArea.textContent = "Score: " + score;
wordArea.textContent = "";
typeArea.textContent = "";
startButton.disabled = false;
}

// 次の単語を表示
function nextWord(){
charIndex = 0;
var random = Math.floor( Math.random() * wordList.length );
wordArea.textContent = wordList[random];
typeArea.textContent = "";
wordChars = wordList[random].toUpperCase().split('');
}

// 残り時間を計測
function countDown(){
if(timeLeft <= 0) {
stopTyping();
return;
}
messageArea.textContent = timeLeft + " sec.";
timeLeft--;
}

// キー押下時の処理
document.onkeydown = function (e){
var keyStr;
if(e.keyCode == 189){
keyStr = "-";
} else {
keyStr = String.fromCharCode(e.keyCode);
}

if(wordChars[charIndex] == keyStr){
charIndex++;
typeArea.textContent = typeArea.textContent + keyStr;
if(charIndex== wordChars.length){
score++;
nextWord();
}
}
};
</script>
</head>
<body>

<form><p><input type="button" id="start-button" value="Start" onClick="onStartButtonClick()">
<span id="message">Press Start</span></p></form>

<hr>

<div style="font-weight: bold;" id="word"></div>
<div id="type"></div>

</body>
</html>

A 回答 (2件)

一般の Web ページの場合は、JavaScript から MySQL への接続は不可能です。


Windows 8 の ストアアプリでの提供でも、無理っぽいです。
Windows の HTML Application 形式で配布するなら、ADODB 経由の手段がありますが現実的ではありません。
クライアント側に Node.js or Rhino を入れて実行させるなら楽勝ですが、HTML5 の範疇ではないですね。

というわけで代替案
* 定期的にバッチ実行で MySQL を叩いた結果をテキスト保存し、JSONP で読み取り
* Web サーバー側で MySQL を叩く Servlet or CGI or スクリプト を用意し、AJAX 呼び出し
    • good
    • 0

phpなりperlなりサーバーサイドのプログラムをかましてください

    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!