0

我有一个使用简单联系表单的静态 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:它是底部面板上的“获取联系”按钮。

4

3 回答 3

1

这是在黑暗中的完整镜头。

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

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

尝试这个

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

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

于 2013-07-19T20:35:05.100 回答
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>
于 2013-07-19T20:50:42.427 回答
-1

如果可能,使用带有 POST 的 AJAX 调用将提交时的数据发送到 url。您将通过这种方式通过重定向。

于 2013-07-19T20:38:12.693 回答