Javascript 从url获取#的值
我有个问题。我有一个网站正在工作。我已经创建了一个php脚本,使用分页从数据库中获取所有收据id,并且一切正常。但问题是每个收据id,我已经添加了一个链接,这样当点击一个指定的结果将显示而不加载页面 链接如下: G145252 G785965,当单击每个链接时,将显示Javascript 从url获取#的值,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有个问题。我有一个网站正在工作。我已经创建了一个php脚本,使用分页从数据库中获取所有收据id,并且一切正常。但问题是每个收据id,我已经添加了一个链接,这样当点击一个指定的结果将显示而不加载页面 链接如下: G145252 G785965,当单击每个链接时,将显示http://test.com/?go=any#G145252 单击后,页面将不会重新加载 因此,我需要的帮助是,当使用javascript单击链接并使用html打印链接后,如何从url获取G145252 我需要将该值作为$GET值
http://test.com/?go=any#G145252
单击后,页面将不会重新加载
因此,我需要的帮助是,当使用javascript单击链接并使用html打印链接后,如何从url获取G145252
我需要将该值作为$GET
值传递给process.php
,这样我就可以在不重新加载页面的情况下加载单击id的收据详细信息
请注意:在我需要从url地址中获取的#值之前有很多get值。假设这是链接
获取散列值
window.location.hash
这将返回您#G145252
及
您不应该将URI的片段标识符部分用于服务器端相关任务。本节仅用于客户端操作。更多信息 您可以使用一些其他方法,例如查询参数来访问此数据 例如,打开此选项:
http://test.com/enter 此处编码?go=any 35; G145252
为此:
http://test.com?go=any&hash=G145252
然后:
函数getQueryVariable(变量){
var query=window.location.search.substring(1);
var vars=query.split(&);
对于(var i=0;i让我们假设您正在使用jQuery
$('.hashClick')。单击(函数(事件){
event.preventDefault();
var url=$(this.attr('href');
var hash=url.substring(url.indexOf(“#”)+1);
警报(“您单击了”+哈希);
//或者在这一点上,您可以执行AJAX调用
//或者获取请求process.php,并将哈希作为参数之一
})
trywindow.location.hash.substr(1)
散列规范的一部分不是将其发送到服务器。这就是为什么一些加密服务(如mega等)可能会说他们不知道打开内容所需的密钥。只是因为链接包含此类散列背后的密钥。你真的必须找到更好的解决方案。正如@GottZ所提到的,散列部分或片段标识符应该是如果你想在你的服务器端代码中使用这些数据,你应该考虑使用查询参数,例如@ Castnl VvBoordel森,你的答案是完美的。谢谢。OU应该考虑替代的解决方案,比如使用JavaScript事件处理程序,用所需的参数调用端点,使用哈希用于服务器端操作仍然是应该避免的事情。
window.location.hash.substring(1) will return you "G145252"
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
console.log(getQueryVariable("go")); // any
console.log(getQueryVariable("hash")); // G145252