PHP标头位置到当前页面

时间:2013-07-19 20:28:16

标签: php ajax redirect header

我有一个使用简单联系表单的静态HTML页面。当用户单击发送按钮时,它使用.php页面发送数据。我已经测试了这个并且它运行正常,我遇到的问题是如何在用户发送消息后将用户保留在该html页面上。我根本不需要重定向(如果可能的话,我希望能够关闭联系表单所在的模式并返回到他们刚刚打开的页面 - 这个联系表单在多个页面上)

我拥有的内容:header('Location: index.html');重定向正常,但我必须使用此功能为每个页面创建一个php联系脚本页面。

我尝试过的内容:header('Location: '.$_SERVER['REQUEST_URI']);header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);

JavaScript:onclick="window.location.reload(true)"什么也没做。

* *我已经通过使用AJAX以我想要的方式工作了。这对我来说都是全新的,所以我非常感谢你帮助我的所有人。即使经历了最终没有做到我想要的答案,也会给我一些新的东西 - 这在我的书中是件好事。感谢你的时间:)

如果你想看到它的实际效果 - 请在我的测试页面上查看:http://www.novasev.com/NST/about.html:它是底部面板上的“取消联系”按钮。

3 个答案:

答案 0 :(得分:1)

这是一个完整的黑暗镜头。

这将永远无限地重定向到自身并导致浏览器出错。

header('Location: ' . $_SERVER['REQUEST_URI']);

试试这个

if(!isset($_GET['r']))
    header('Location: ' . $_SERVER['REQUEST_URI'] . '?r=1');

这将重定向但使用参数,然后可以检查此r参数以确保重定向不会一次又一次地发生。

答案 1 :(得分:1)

听起来你应该使用jQuery并使用Ajax提交你的联系表单。通过使用Ajax,您将在后台发送联系表单,用户将看不到页面刷新,即:模态窗口将保留,您可以使用javascript代码关闭它。

这是一个简单的例子,我希望能帮助你走上正轨。要从contact.php脚本中捕获潜在错误,请查看文档http://api.jquery.com/jQuery.ajax/

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    $("#contact").submit(function() {
      $.ajax({
        type: "POST",
        url: "contact.php",
        data: $(this).serialize(),
        success: function() {
           alert("Thanks for contacting us!");
         }
      })
      // Prevent that page reloads
      return false;
    })
  })
</script>

<form id="contact">
   <input type="text" name="name" /> 
   <input type="text" name="msg" /> 
   <input type="submit" />
</form>

答案 2 :(得分:-1)

如果可能的话,使用带有POST的AJAX调用将提交的数据发送到URL。你可以通过这种方式传递重定向。