私はechoをjsonでエンコードしたphpファイルを持っています。私はこの単語を取得するjavascript関数を持っています。私はこの関数を呼び出して、返された単語がすでに配列に入っているかどうかをチェックし、そうであれば、別の単語を呼びたいと思います。私は基本的に私の配列にない単語を得るまで、このプロセスを繰り返す必要があります。私はこれに苦しんでいるので、これを行う方法についていくつかアドバイスが必要です。私はクライアント側だけでこれをやりたい現在、getWord()を呼び出すと、undefinedが返されますが、関数自体が機能するので、その時点で単語が取得されていないことが疑われます。PHPファイルにヒットする関数を繰り返し呼び出す
<?php
$sql = "SELECT * FROM words ORDER BY RAND() LIMIT 1";
$result = $db->query($sql);
$row = $result->fetch_assoc();
$word = $row['word'];
echo json_encode($word);
?>
function getWord(){
var word;
$(document).ready(function(){
$.getJSON("getWord.php",function(data){
word = data;
alert("1st alert: " + word);
});
});
return word;
}
$(document).ready(function() {
$("#newRound").on("click",function(){
currentWord = getWord();
alert("SEcond alert: " + currentWord);
//check here if data is already in wordsSoFar arary and if it is, get another word from getword.php
document.getElementById("input1").style.visibility = 'visible';
//currentWord = data; //set the current work
lives = 6; //reset lives
tracker = 0;
incorrectLettersGuessed = "";
allGuessedLetters = "";
updateLetters();
document.getElementById('hangman').innerHTML = '<center><img src="stage1.png"></center>';
createTable(currentWord);
output.innerHTML = '<center>'+messages.validLetter + '</center>';
alert(currentWord);
});
});
「getWord.php」のソースはどこですか? Btw、 '$ .getJson()'は[非同期](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests)メソッドです。したがって、 'getWord()'関数は常に空の値を返します。 –
その単語のデータベース。 getWord()が競合した後にメソッドを呼び出した後にコードを実行する方法はありますか? –
それは単語を警告しますか?そうであれば、私の最初のコメントに掲載されている_asynchronous_ iのリンクを確認してください。 –