从网址获取#的值

时间:2018-02-01 12:08:37

标签: javascript php jquery html ajax

我有问题。我有一个网站正在努力。我创建了一个php脚本,使用分页从数据库中获取所有收据ID,一切正常。但问题是每个收据ID,我添加了一个链接,以便在点击时显示指定的结果而不加载页面。

链接如下:

G145252 G785965并且点击每个链接时会显示http://test.com/?go=any#G145252

点击后页面将不会重新加载。

所以我需要帮助的是,在使用javascript点击链接并使用html打印后,如何从网址获取G145252

我需要将值作为process.php传递给$GET,这样我就可以加载点击的ID的收据明细而不重新加载页面。

请注意:在#value我需要退出网址之前,有很多获取值。

3 个答案:

答案 0 :(得分:0)

您应该不使用URI的片段标识符部分来执行服务器端相关任务。本节仅供客户端操作。更多信息here

您可以使用其他方法(例如查询参数)来访问此数据。

例如,转过来:

http://test.com/enter code here?go=any#G145252

进入这个:

http://test.com?go=any&hash=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

注意:我知道这不是您实际问题的确切答案,但问题本身就是一个糟糕的练习场景,因此我的建议。

getQueryVariable 函数的功劳归于CSS技巧:https://css-tricks.com/snippets/javascript/get-url-variables/?test=3&test2=5

答案 1 :(得分:0)

让我们假设您正在使用jQuery。

  1. 更改所有链接,以便他们有一个共同的班级名称,让我们说&#39; hashClick&#39; e.g
  2. <a href="http://test.com?go=any#G145242" class="hashClick">My Link</a>
    
    1. 要在单击时获取哈希部分,请为这些链接添加单击事件处理程序
    2. $('.hashClick').click( function(event) {
          event.preventDefault();
          var url = $(this).attr('href');
          var hash = url.substring(url.indexOf('#')+1);
          alert("You clicked " + hash);
      
          // or at this point you can do an AJAX call 
          // or GET request to process.php with hash as one of the parameters
      })
      

答案 2 :(得分:-1)

假设这是链接 http://test.com/?go=any#G145252 获取哈希值

window.location.hash 

将返回#G145252 和

window.location.hash.substring(1) will return you "G145252"