55 votes

Comment ajouter un paramètre d'url à l'url actuelle ?

Actuellement je suis à

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

et je veux faire un lien vers

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

en ne définissant pas l'url actuelle. Comme <a href="&like=like">Like</a> . Cependant ce dernier me montre http://example.com/&like=like

24voto

Quentin Points 325526

Il n'y a aucun moyen d'écrire un URI relatif qui préserve la chaîne de requête existante tout en lui ajoutant des paramètres supplémentaires.

Vous devez:

 topic.php?id=14&like=like

17voto

Marco Pace Points 3367
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;
}

Ajoutez ensuite votre valeur avec quelque chose comme ;

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

16voto

Je sais que je suis en retard pour le jeu, mais vous pouvez simplement faire ?id=14&like=like en utilisant la requête de construction http comme suit :

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

Quels que soient les paramètres GET que vous aviez, ils seront toujours là et si like était un paramètre avant il sera écrasé, sinon il sera inclus à la fin.

9voto

mrts Points 472

Si vous souhaitez ajouter le paramètre URL en JavaScript, consultez cette réponse . Comme suggéré ici, vous pouvez utiliser l' URLSeachParams dans les navigateurs modernes comme suit :

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

3voto

rattmuff Points 2261

Si vous souhaitez utiliser « j'aime » comme paramètre, votre lien doit être :

 <a href="http://stackoverflow.com/topic.php?like=like">Like</a>

Il est plus probable que vous souhaitiez :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X