捕获测验结果页面的页面URL的最佳方法

时间:2015-01-15 02:46:50

标签: php jquery ajax

想象一下在mysite / test / universe(URL =' universe')或mysite / test / earth(URL =' earth')上进行测验。选择答案并单击“提交”按钮后,您将转发到mysite / test / results.php的静态页面。表单自动转发一些测试数据(例如$ answer1 = $ _POST [' q1'])。

有没有办法修改脚本,以便当有人点击“提交”按钮时,页面的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&#8217;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>

2 个答案:

答案 0 :(得分:1)

在表单中有一个隐藏字段

<input type="hidden" id="url" />

并使用此javascript设置其值

document.getElementById("url").value = document.URL;

或者这个jQuery

$(document).ready(function(){ $("input#url").attr("value", $(location).attr('href')); });

然后它将与表格一起提交。

答案 1 :(得分:1)

您可以使用查询字符串。如果您在表单提交后的http://something.html和第二页网址中的第一页网址是another.html,那么

 <form action="another.html?previous=<?php echo $_SERVER['REQUEST_URI']; ?>">
 </form>

在another.html中,您可以在使用GET

提交表单之前获取上一页网址
 $_GET["previous"]