pushstate函数后的$ _GET url参数

时间:2016-05-29 00:30:44

标签: javascript php ajax wordpress pushstate

我运行一个wordpress网站。主页上有一个按钮,用于推送新状态:

<button onclick="javascript:window.history.pushState('test','','?id=123')"
class="modalopen" </button>

点击按钮后,会打开一个模态联系表单,需要使用id参数来确定电子邮件收件人在PHP中的位置。

我正在尝试获取参数:id from:

http://example.com/?id=452

使用$ _GET函数。

我知道pushState是客户端的,并且URL没有更新服务器端。如何在不重新加载页面的情况下更新url服务器端。

我认为它会涉及ajax。不幸的是,我对此一无所知。

或者,也许还有另一种方法来检索id。

要获取电子邮件收件人,联系表单使用以下代码:

$post_id = $_GET['id'];
$val = get_post_meta($post_id, $key, true);

提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用history.pushState()更改在HTTP标头中使用的引荐来源,这将导致URL栏显示http://example.com/?id=452,但不会导致浏览器加载网址,因此您无法访问到$ _GET ['id'],因为实际上没有使用该参数向服务器请求页面。

如果你想在创建id之后使用id而不重新加载页面,你肯定需要ajax调用。

这样做比你想象的要简单,你可以尝试使用jQuery。

示例通话

$.ajax({
  type: "POST",
  url: "doSomething.php",
  data: {id:id},
  cache: false,
  success: function(result){
     // do something with the data returned by the doSomething.php script
  }
});

Google jQuery ajax了解更多详情。 这可以是一个有用的起点http://www.tutorialspoint.com/jquery/jquery-ajax.htm