2011-12-19 126 views
31

目前我在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如何将url参数添加到当前的url?

+0

可能的欺骗http://stackoverflow.com/questions/486896/adding-a-parameter-to-the-url-with-javascript或http://stackoverflow.com/questions/6899097/how-to- add-a-parameter-to-the-url – reflexiv 2013-07-16 05:46:46

回答

8

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

你必须注意:如果你想使用“喜欢”

topic.php?id=14&like=like 
+2

有很多方法。有关如何使用Javascript,请参阅http://stackoverflow.com/questions/6899097/how-to-add-a-parameter-to-the-url。 – reflexiv 2013-07-16 05:41:43

+4

您不需要重复路径。从...开始 ?没关系。 http://stackoverflow.com/q/7871871/62421 – webjunkie 2016-07-21 10:40:00

2

为参数的链接必须是:

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

更可能的是,你想:

<a href="/topic.php?id=14&like=like">Like</a> 
13
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; 
} 

然后添加你的价值与somet兴奋似的;

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

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

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); 
    } 
} 
4

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

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

无论您的GET参数是否仍然存在,并且like是覆盖前的参数,否则它将包含在最后。