繁体   English   中英

当我使用jQuery ajax时php不记得变量

[英]php not remembering variable when I use jQuery ajax

我有一个问题,当我使用jQuery ajax时php不记得变量。 您能帮助我如何使它记住其变量吗?

我在此消息底部附有代码文件。 首先,question.php向javascript发送一个问题(通过jQuery ajax)并以html显示。 question.php文件也将总和放入变量$correctAnswer$_SESSION[correct_answer] 然后,用户使用html输入其答案,然后javascript将答案发送给.check_answer.php(通过jQuery ajax)。 之后,check_answer.php文件中的php代码将用户答案与变量$correct_answer$_SESSION[correct_answer]进行比较,以查看答案是否正确。

问题是, check_answer.php似乎不记得变量$ correct_answer在设定question.php ,所以它不能正确地检查答案。 我尝试改用$_SESSION[correct-answer] ,但服务器端(php)仍然不记得$correct_answer或& SESSION[correct_answer].

您能告诉我我在这里做错了什么,如何使php记住正确答案的变量吗?

谢谢你诺比

index.php

<html>
    <head>
        <meta charset="UTF-8">
        <title>Ajax-powered Quiz</title>


    </head>
    <body>
        <p> Answer the following question. </p>
        <p id="question_text">Question</p>
        <p id="response_text">Response</p>

        <input id="your_answer" type="textbox">    
        <input id="submit_button" type="button" value="submit">

    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript" src="js/main.js"></script> 
    </body>
</html>

main.js

$.ajax({
        url:"php/question.php"
}).done(function(data){
    $("#question_text").html(data);
});


function server_response(data) {
    $("#response_text").html(data);
}

function submit_answer() {
    alert("answer submitted!");
    var your_answer;
    your_answer = parseInt( $("#your_answer").val() );

    var send_object = {
        yourAns: your_answer
    };

    //$.get("php/check_answer.php", send_object, server_response);

  $.ajax ({
    url: 'php/check_answer.php',
    type: 'post',
    data: send_object,
    success: server_response
  });
}



$("#submit_button").click(submit_answer);

Question.php

<?php
session_start();

$numb1 = 2;
$numb2 = 3;
$_SESSION['correct_answer'] = $numb1 + $numb2;

echo "$numb1 + $numb2 = ?";

?>

check_answer.php

<?php

$your_answer = filter_input(INPUT_POST, "yourAns");
echo "your answer is $your_answer!";

$correct_answer = $_SESSION['correct_answer'];
if ($your_answer == $correct_answer) {
    echo "You are correct!";
} else {
    echo "You are wrong!";
    echo "Correct answer is $correct_answer!";
}



?>

在您的check_answer.php文件中,首先使用session_start()方法首先启动会话。 然后它将起作用。

您不会在check_answer.php开始会话。

因此,在您的check_answer.php添加session_start() 它将工作:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM