Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从url获取#的值_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 从url获取#的值

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值

我有个问题。我有一个网站正在工作。我已经创建了一个php脚本,使用分页从数据库中获取所有收据id,并且一切正常。但问题是每个收据id,我已经添加了一个链接,这样当点击一个指定的结果将显示而不加载页面

链接如下:

G145252 G785965,当单击每个链接时,将显示
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”
  • 
    
  • 要在单击时获取散列部分,请为这些链接添加单击事件处理程序
  • $('.hashClick')。单击(函数(事件){
    event.preventDefault();
    var url=$(this.attr('href');
    var hash=url.substring(url.indexOf(“#”)+1);
    警报(“您单击了”+哈希);
    //或者在这一点上,您可以执行AJAX调用
    //或者获取请求process.php,并将哈希作为参数之一
    })
    
    try
    window.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