【问题标题】:How to add url parameter to the current url?如何将 url 参数添加到当前 url?
【发布时间】:2012-01-23 15:48:54
【问题描述】:

我现在在

http://example.com/topic.php?id=14 

我想链接到

http://example.com/topic.php?id=14&like=like 

通过不定义当前 url。喜欢<a href="&like=like">Like</a>。然而,最后一个向我展示了http://example.com/&like=like

【问题讨论】:

标签: html url


【解决方案1】:

没有办法编写一个相对 URI 来保留现有的查询字符串,同时向它添加额外的参数。

你必须:

topic.php?id=14&like=like

【讨论】:

【解决方案2】:

如果您希望使用“like”作为参数,您的链接需要:

<a href="/topic.php?like=like">Like</a>

你更可能想要:

<a href="/topic.php?id=14&like=like">Like</a>

【讨论】:

    【解决方案3】:
    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;
    }
    

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

    echo currentUrl().'&value=myVal';
    

    【讨论】:

      【解决方案4】:

      也许你可以写一个函数如下:

      var addParams = function(key, val, url) {
        var arr = url.split('?');
        if(arr.length == 1) {
          return url + '?' + key + '=' + val;
        }
        else if(arr.length == 2) {
          var params = arr[1].split('&');
          var p = {};
          var a = [];
          var strarr = [];
          $.each(params, function(index, element) {
            a = element.split('=');
            p[a[0]] = a[1];
            })
          p[key] = val;
          for(var o in p) {
            strarr.push(o + '=' + p[o]);
          }
          var str = strarr.join('&');
          return(arr[0] + '?' + str);
        }
      }
      

      【讨论】:

        【解决方案5】:

        我知道我迟到了,但您可以使用 http 构建查询来执行?id=14&amp;like=like,如下所示:

        http_build_query(array_merge($_GET, array("like"=>"like")))
        

        您拥有的任何 GET 参数仍然存在,如果 like 是之前的参数,它将被覆盖,否则它将被包含在最后。

        【讨论】:

        • 这只是 php
        • 你是对的,我不敢相信我没有意识到这个问题不是 PHP 问题。我只是假设这是因为 PHP 中也给出了另一个答案:/
        【解决方案6】:

        如果您想在 JavaScript 中添加 URL 参数,请参阅this answer。正如那里所建议的,您可以在现代浏览器中使用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>
        

        【讨论】:

          【解决方案7】:

          它是 not elegant,但可以作为单行 &lt;a&gt; 元素来实现

          &lt;a href onclick="event.preventDefault(); location+='&amp;like=like'"&gt;Like&lt;/a&gt;

          【讨论】:

            猜你喜欢
            • 2015-02-21
            • 1970-01-01
            • 2019-01-20
            • 2013-04-08
            • 1970-01-01
            • 1970-01-01
            • 2015-01-27
            • 2014-06-15
            • 1970-01-01
            相关资源
            最近更新 更多