【发布时间】:2019-06-16 14:19:27
【问题描述】:
这可能非常简单,但我想通过从 SQL 服务器获取新的随机记录来更新 PHP 变量,然后将这些变量传递给 JavaScript 以使用它们,但是我调用的 PHP 函数只能工作一次然后停止工作。不知道是函数调用有问题还是函数本身有问题。
<?php
function getQuestion(){
$conn = mysqli_connect("localhost", "root", "pass", "projectDB");
$sql = "SELECT question, answerA, answerB, answerC, answerD,
correctAns FROM questionTable ORDER BY rand() LIMIT 3";
global $result, $row, $question, $answerA, $answerB, $answerC,
$answerD, $correctAns;
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$question = $row["question"];
$answerA = $row["answerA"];
$answerB = $row["answerB"];
$answerC = $row["answerC"];
$answerD = $row["answerD"];
$correctAns = $row["correctAns"];
mysqli_close($conn);
}
getQuestion();
?>
<script>
var answerA = "<?php echo $answerA; ?>";
var answerB = "<?php echo $answerB; ?>";
var answerC = "<?php echo $answerC; ?>";
var answerD = "<?php echo $answerD; ?>";
var question = "<?php echo $question; ?>";
var correctAnswer = "<?php echo $correctAns; ?>";
function newQuestion(){
<?php getQuestion(); ?>
question = "<?php echo $question; ?>";
answerA = "<?php echo $answerA; ?>";
answerB = "<?php echo $answerB; ?>";
answerC = "<?php echo $answerC; ?>";
answerD = "<?php echo $answerD; ?>";
correctAnswer = "<?php echo $correctAns; ?>";
}
else if (targetHit == true){
reset();
newQuestion();
tick = 0;
}
</script>
第一次定义变量并在顶级 PHP 中使用 getQuestion() 时,它们会得到正确的值,而第一次调用 newQuestion() 时,它们会更新为不同的正确值,但在那之后,调用 newQuestion( ) 不会更改任何应有的值。 谢谢。
【问题讨论】:
-
没有办法直接从JS调用PHP函数。 PHP在页面加载之前在服务器上执行,js在客户端之后运行。
标签: javascript php mysqli