Подтвердить что ты не робот

Как добавить параметр url в текущий URL?

В настоящее время я нахожусь в 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

4b9b3361

Ответ 1

Невозможно написать относительный URI, который сохраняет существующую строку запроса при добавлении к ней дополнительных параметров.

Вы должны:

topic.php?id=14&like=like

Ответ 2

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';

Ответ 3

Я знаю, что я опаздываю на игру, но вы можете просто сделать ?id=14&like=like с помощью запроса на сборку http следующим образом:

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

Независимо от того, какие параметры GET у вас были, все равно там, и если like был параметром, прежде чем он будет перезаписан, в противном случае он будет включен в конце.

Ответ 4

Если вы хотите использовать "как" в качестве параметра, вам нужна ваша ссылка:

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

Скорее всего, вы хотите:

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

Ответ 5

Возможно, вы можете написать функцию следующим образом:

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

Ответ 6

Если вы хотите добавить параметр URL в JavaScript, посмотрите этот ответ. Как предлагается там, вы можете использовать API URLSeachParams в современных браузерах следующим образом:

<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>