私は三目並べゲームを書いており、Ajax と Php を実装していますが、どちらも私にとっては初めてです。私は他のいくつかの議論を見てきましたが、私の答えを見つけることができないようです. 私のjsファイルはphpを呼び出しています。これは、データベースを呼び出して質問と回答を引き出しています。ユーザーは質問に答えて自分の番をプレイする必要があります。ただし、私のプログラムは、現在の質問ではなく、次に尋ねられた質問に対する回答を返します。
これが私のphpです:
$con = mysql_connect('localhost', '412ygutstei', '412ygutstei');
if ($con)
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$questionNum = $_POST['q_id'];
mysql_select_db("ygutstei_db", $con);
$result = mysql_query("SELECT q_id, question_type, text,description, answer FROM questions,questiontype WHERE q_id=".$questionNum."");
$row = mysql_fetch_array($result);
$question = $row['description']." ".$row['text']."?|".$row['answer'];
echo($question);
mysql_close($con);
phpを呼び出す私のjs関数:
function countDown() {
var element = document.getElementById(elem);
element.innerHTML = secs;
if(secs == 15){
document.getElementById('playerDisplay').innerHTML= printEquation();
}
if(secs == 0){
clearInterval(clock);
turn++;
startTimer();
document.getElementById(answer).value = "";
}
else{
secs--;
}
}
var expect = ""; var randomQNumber; var correctAnswer; var askQuestion = "";
function printEquation(){
randomQNumber = randNumber(1,8);
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var elements = xmlhttp.responseText.split("|");
//elements[0] = document.getElementById("question")
correctAnswer = elements[1];
expect = correctAnswer;
askQuestion = elements[0];
//alert(correctAnswer);
}
}
xmlhttp.open("POST","G_TicTacToe.php",true);
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xmlhttp.send("q_id="+randomQNumber);
if(turn % 2 == 0){
return "X Plays: " + askQuestion + " = ";
}
else{
return "O Plays: " + askQuestion + " = ";
}
}
function matchAnswer(a) {
var b = document.getElementById(a).value;
document.getElementById(a).innerHTML = b;
if(expect.toUpperCase() == b.toUpperCase()){
clearInterval(clock);
answeredQuestion = true;
window.alert("Correct! ");
document.getElementById(a).value = "";
click();
}
else{
clearInterval(clock);
window.alert("Incorrect! The correct answer was: " + expect);
document.getElementById(a).value = "";
playerTurn();
startTimer();
}
matchAnswer() を呼び出す HTML コード:
<input type="text" id="answer">
<button id="equals" onclick="matchAnswer('answer');";>Answer</button>
</div>
<div class="playerAnswer">
</div>
例: 出力の場合: X Plays: State1 の名前は? - Illinois と答えると、次の質問の答えが返されます。「私の好きな動物は何ですか? - ペンギンです。
どんな提案でも大歓迎です。さらにコードが必要な場合は、お知らせください。