我运行一个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);
提前谢谢!
答案 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