如何将url参数添加到当前网址?

ilh*_*han 38 html url

目前我在http://example.com/topic.php?id=14,我想http://example.com/topic.php?id=14&like=like通过不定义当前网址来建立链接.喜欢<a href="&like=like">Like</a>.然而,这最后一个给我看http://example.com/&like=like

Mar*_*ace 15

function currentUrl() {
    $protocol = strpos(strtolower($_SERVER['SERVER_PROTOCOL']),'https') === FALSE ? 'http' : 'https';
    $host     = $_SERVER['HTTP_HOST'];
    $script   = $_SERVER['SCRIPT_NAME'];
    $params   = $_SERVER['QUERY_STRING'];

    return $protocol . '://' . $host . $script . '?' . $params;
}
Run Code Online (Sandbox Code Playgroud)

然后用类似的东西添加你的价值;

echo currentUrl().'&value=myVal';
Run Code Online (Sandbox Code Playgroud)


Que*_*tin 12

在向其添加其他参数的同时,无法编写保留现有查询字符串的相对URI.

你必须:

topic.php?id=14&like=like
Run Code Online (Sandbox Code Playgroud)

  • 您不需要重复该路径.从...开始 ?没关系.http://stackoverflow.com/q/7871871/62421 (5认同)
  • 有很多方法.有关如何使用Javascript的信息,请参见http://stackoverflow.com/questions/6899097/how-to-add-a-parameter-to-the-url. (2认同)

Zac*_*aum 9

我知道我已经迟到了,但你可以?id=14&like=like通过使用http构建查询来做到如下:

http_build_query(array_merge($_GET, array("like"=>"like")))
Run Code Online (Sandbox Code Playgroud)

无论你有什么GET参数都会在那里,如果like是一个参数,它将被覆盖,否则它将包含在最后.


mrt*_*rts 5

如果您想在 JavaScript 中添加 URL 参数,请参阅此答案。按照那里的建议,您可以URLSeachParams在现代浏览器中使用API,如下所示:

<script>
function addUrlParameter(name, value) {
  var searchParams = new URLSearchParams(window.location.search)
  searchParams.set(name, value)
  window.location.search = searchParams.toString()
}
</script>

<body>
...
  <a onclick="addUrlParameter('like', 'like')">Like this page</a>
...
</body>
Run Code Online (Sandbox Code Playgroud)


Kam*_*ski 5

它并不优雅,但可以作为单行<a>元素来实现

<a href onclick="event.preventDefault(); location+='&like=like'">Like</a>
Run Code Online (Sandbox Code Playgroud)