2011-12-19 107 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是覆蓋前的參數,否則它將包含在最後。