Javascript jQuery.click()事件在$.post to php脚本中具有意外行为
这里是我注册的地方。单击Javascript jQuery.click()事件在$.post to php脚本中具有意外行为,javascript,php,jquery,Javascript,Php,Jquery,这里是我注册的地方。单击 $(document).ready( function() { $("#newRoundId").click(function() { if(inGame()) { alert(1); if(confirm("Are you sure?") == true) { alert(2); $.post("../php/fetch_word.p
$(document).ready( function() {
$("#newRoundId").click(function() {
if(inGame()) {
alert(1);
if(confirm("Are you sure?") == true) {
alert(2);
$.post("../php/fetch_word.php", function(word) { startNewRound(word); }, "text");
}
}
else {
alert(3);
$.post("../php/fetch_word.php", function(word) { startNewRound(word); }, "text");
}
});
});
下面是fetch_word.php
<?php
require_once "config.php";
do {
$result = $db->query("SELECT word FROM words ORDER BY rand() LIMIT 1");
$resultArr = $result->fetch_all(MYSQLI_ASSOC);
$word = implode($resultArr[0]);
$dupResult = $db->query("SELECT word FROM guessed_words WHERE word = '$word'");
} while($dupResult->num_rows);
$db->query("INSERT INTO guessed_words (word) VALUES ('$word')");
echo $word;
?>
当inGame为false且Confirm为true时,代码工作正常。您确定吗?如果为true,则返回多个单词,但仍然有效,但当确认为false时,$.post请求被发送到服务器并返回多个单词,如果我继续这样做,则返回的单词数量似乎是随机的,然后服务器请求超时超过30秒,这是一个致命错误。真的很困惑,因为我的php代码以前工作过,现在我正在用这个新的.click函数测试它,我得到了这个
该警报用于调试目的。1 inGame做什么?2不确定为什么在未向URL传递任何数据时使用$.post。我认为$.get会更简单。仅供参考,您可以将两个SELECT查询组合起来。从单词不在的单词中选择单词按rand LIMIT 1的顺序从猜测的单词中选择单词。当单词数不足时,将发生超时。它不断地挑选一个随机的单词,注意到它已经被猜到了,并且从未找到一个未使用的单词。使用我的组合查询应该可以防止这个问题。当确认为false时,我看不出有任何方法可以发送$.post请求。@如果没有参数,我认为$.post和$.get之间没有太大区别。