当我使用 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
似乎不记得question.php
中设置的变量$ Correct_answer,因此它无法正确检查答案。
我尝试使用 $_SESSION[ Correct-answer]
代替,但服务器端(php)仍然不记得 $ Correct_answer
或 &SESSION[ 中的值正确答案]。
你能告诉我我在这里做错了什么以及如何让 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);
问题.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 。
因此,请在 check_answer.php
中添加 session_start()
。它会起作用的:)
关于javascript - 当我使用 jQuery ajax 时,php 不记得变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169978/