Функция PHP для обновления переменных PHP, не вызываемых в JavaScript - PullRequest
0 голосов
/ 16 июня 2019

Вероятно, это очень просто, но я хочу обновить переменные PHP, получив новую случайную запись с сервера SQL, а затем передать эти переменные в 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>

При первом определении переменных и использовании getQuestion () в верхнем PHP они получают правильные значенияи при первом вызове newQuestion () они обновляются с другими правильными значениями, однако после этого вызов newQuestion () не изменяет ни одно из значений, как это должно быть.Спасибо.

1 Ответ

0 голосов
/ 16 июня 2019

Это неправильный способ написания php-кода в javascript, даже если мы не должны писать php-код в javascript. лучше получить значение из базы данных и сохранить значение в переменной javascript по запросу ajax. это даст вам 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);
           }
      });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...