【问题标题】:PHP function to update PHP variables not being called in JavaScript用于更新未在 JavaScript 中调用的 PHP 变量的 PHP 函数
【发布时间】: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( ) 不会更改任何应有的值。 谢谢。

【问题讨论】:

标签: javascript php mysqli


【解决方案1】:

即使我们不应该在 javascript 中编写 php 代码,在 javascript 中编写 php 代码也不是正确的方法。更好地从数据库中检索值并通过 ajax 请求将值存储在 javascript 变量中。它每次都会给你 sql 结果。 制作一个 php 文件来检索数据和另一个 php 或 js 文件来 ajax 请求。 这里是

的代码

编写的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);
return $correctAns;}
echo json_encode(getQuestion());

这里ajax请求得到结果

$.ajax({
        type: 'post',
        url: 'phpfilename.php',
        success: function ( data ) {
          alert(JSON.parse(data));
        },
         error:function(error){
             console.log(error);
           }
      });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多