为测验结果页面捕获页面 URL 的最佳方式
Best way to capture page URL for quiz results page
想象一下在 mysite/test/universe (URL = 'universe') 或 mysite/test/earth (URL = 'earth') 进行测验。在您 select 回答并单击提交按钮后,您将被转到 mysite/test/results.php 的静态页面。表单自动转发一些测试数据(例如 $answer1 = $_POST['q1'])。
有没有办法修改脚本,以便当有人单击“提交”按钮时,页面的 URL 也被捕获并转发到结果页面?
我不希望 URL 本身发生变化。例如,如果人们被转发到 mysite/test/results%universe,或类似的东西,那么他们可以访问那个 URL 来查看所有答案。
所以我只想转发 URL 的值,然后我可以用它来显示和设置正确和错误答案的样式,以及反馈。
我还应该解释一下,我正在使用 PHP、jQuery,也许还有 AJAX,我的最终目标是修改我的测试,以便用户可以登录,并将测试结果发布到数据库中。考虑到这一点,修改下面的 HTML 以便捕获页面 URL 并将其转发到结果页面的最佳方法是什么?
<div id="quiz" rel="key" style="width: 500px; margin: 10px auto;">
<form action="grade.php" method="post" id="quiz">
<ol>
<li id="q1">
<div class="Question">No one knows if there’s just one universe or a series of universes, sometimes referred to as a:</div>
<div class="Answer">
<label for="q1-A"><div class="Radio"><input type="radio" name="q1" id="q1-A" value="A" style="display: none;"> A. multiverse</div></label></div>
<div class="Answer">
<label for="q1-B"><div class="Radio"><input type="radio" name="q1" id="q1-B" value="B" style="display: none;"> B. parallel universe</div></label></div>
</li>
</ol>
<input type="submit" value="Submit Quiz" />
</form>
</div>
您的表单中有一个隐藏字段
<input type="hidden" id="url" />
并以此 javascript
设置其值
document.getElementById("url").value = document.URL;
或这个jQuery
$(document).ready(function(){
$("input#url").attr("value", $(location).attr('href'));
});
然后会和表单一起提交。
您可以使用查询字符串。如果您在 http://something.html 中的第一页 url 和表单提交后的第二页 url 是 another.html 那么
<form action="another.html?previous=<?php echo $_SERVER['REQUEST_URI']; ?>">
</form>
在 another.html 中,您可以在使用 GET
提交表单之前获取上一页 url
$_GET["previous"]
想象一下在 mysite/test/universe (URL = 'universe') 或 mysite/test/earth (URL = 'earth') 进行测验。在您 select 回答并单击提交按钮后,您将被转到 mysite/test/results.php 的静态页面。表单自动转发一些测试数据(例如 $answer1 = $_POST['q1'])。
有没有办法修改脚本,以便当有人单击“提交”按钮时,页面的 URL 也被捕获并转发到结果页面?
我不希望 URL 本身发生变化。例如,如果人们被转发到 mysite/test/results%universe,或类似的东西,那么他们可以访问那个 URL 来查看所有答案。
所以我只想转发 URL 的值,然后我可以用它来显示和设置正确和错误答案的样式,以及反馈。
我还应该解释一下,我正在使用 PHP、jQuery,也许还有 AJAX,我的最终目标是修改我的测试,以便用户可以登录,并将测试结果发布到数据库中。考虑到这一点,修改下面的 HTML 以便捕获页面 URL 并将其转发到结果页面的最佳方法是什么?
<div id="quiz" rel="key" style="width: 500px; margin: 10px auto;">
<form action="grade.php" method="post" id="quiz">
<ol>
<li id="q1">
<div class="Question">No one knows if there’s just one universe or a series of universes, sometimes referred to as a:</div>
<div class="Answer">
<label for="q1-A"><div class="Radio"><input type="radio" name="q1" id="q1-A" value="A" style="display: none;"> A. multiverse</div></label></div>
<div class="Answer">
<label for="q1-B"><div class="Radio"><input type="radio" name="q1" id="q1-B" value="B" style="display: none;"> B. parallel universe</div></label></div>
</li>
</ol>
<input type="submit" value="Submit Quiz" />
</form>
</div>
您的表单中有一个隐藏字段
<input type="hidden" id="url" />
并以此 javascript
设置其值document.getElementById("url").value = document.URL;
或这个jQuery
$(document).ready(function(){
$("input#url").attr("value", $(location).attr('href'));
});
然后会和表单一起提交。
您可以使用查询字符串。如果您在 http://something.html 中的第一页 url 和表单提交后的第二页 url 是 another.html 那么
<form action="another.html?previous=<?php echo $_SERVER['REQUEST_URI']; ?>">
</form>
在 another.html 中,您可以在使用 GET
提交表单之前获取上一页 url $_GET["previous"]