问题描述
我正在尝试为孩子们开发一个教程,我有一个问题和答案。我正在尝试使用如下两个 div 来完成此操作。有两个 div 的想法是让孩子们可以打印完整的问题和解决方案或单击清除解决方案,打印问题仅供以后练习自己解决。我正在尝试同时使用乳胶。如果我在 2 个文件中发出两个 ajax 请求,我已经能够完成,比如带有问题响应的 CALC_Q.PHP 和带有响应响应的 CALC_A.php,但我确信我可以在一个文件中做一个 Ajax 请求,同样节省了我一些时间,并使应用程序运行得更快。如果问题和答案在相同的 div 中,这很容易,但是这样当我单击“清除解决方案”时,它将删除我不想要的问题和答案(因为它们将在同一个 div 中)。我希望问题在清除解决方案后保持可见。这是一个必须或不会问的问题。页面首次加载时问题将不可见(我知道这一点)。点击计算后会出现问题和答案,问题会一直显示直到页面关闭
我确定我在响应 CALC.php 中的两个 div 或 json 调用时做错了
<div id="question" class="col s12 m8 l6 noselect" style = "background-color: green;">
<p id="ques"></p>
</div>
<div id="solution" class="col s12 m8 l6" style = "background-color: white;">
<p id="result"></p>
</div>
function Calc()
{
$('#loader').css('visibility','visible');
ajaxRequest= $.ajax({
url: 'CALC.php',type: 'post',data: { "num1": myvar1,"num2": myvar2
},});
ajaxRequest.done(function(response) {
//$('#ques').text(response[q]); //this didn't work
//$('#result').text(response[a]); // this didn't work
$('#ques').text(response.q);
$('#result').text(response.a);
MathJax.Hub.Queue(['Typeset',MathJax.Hub,"result"],function() {$('#loader').css('visibility','hidden');});
}
}
在 CALC.php 中
$number1 = $_POST['num1'];
$number2 = $_POST['num2'];
$final= $number1+$number2;
$q = $a = array();
$q = $a = null;
$q.="Add these numbers".$number1." and ".$number2;
$q.="<br> Show all work ";
$a = "$ \\text{The answer is} $.$final;
echo json_encode(array($q,$a));
return;
解决方法
我最终解决了如下问题。我有点接近不完全。它遗漏了我发现的一个重要陈述 只有在这个网站上的一个答案中陷入僵局,而不是在寻求帮助之前的其他答案中,这可能就是我错过它的原因。我肯定有一些语法错误。查看下面的响应语句,Mathjax 语句也有 2 个变量:ques、result 和 CALC.php 中的关键头语句。我通过发送回一个对象然后将内容拆分到我想要的相应 div 来解决它,如下所示:
<div id="question" class="col s12 m8 l6 noselect" style = "background-color: green;">
<p id="ques"></p>
</div>
<div id="solution" class="col s12 m8 l6" style = "background-color: white;">
<p id="result"></p>
</div>
function Calc()
{
$('#loader').css('visibility','visible');
ajaxRequest= $.ajax({
url: 'CALC.php',type: 'post',data: { "num1": myvar1,"num2": myvar2
},});
ajaxRequest.done(function(response) {
$('#ques').text(response.myquestion);
$('#result').text(response.myanswer);
MathJax.Hub.Queue(['Typeset',MathJax.Hub,"ques,result"],function() {$('#loader').css('visibility','hidden');});
}
}
}
我的另一个文件 CALC.php
$number1 = $_POST['num1'];
$number2 = $_POST['num2'];
$final= $number1+$number2;
$q = $a = array();
$q = $a = null;
$q.="Add these numbers".$number1." and ".$number2;
$q.="<br> Show all work ";
$a = "$ \\text{The answer is} $.$final;
$final_answer = array("myquestion"=>$q,"myanswer"=>$a);
header("Content-Type: application/json"); //without this statement,it wouldn't work
echo json_encode($final_answer);
这个标题语句被死锁提及。这是参考:
How to get multiple responses to a single ajax request in php