526 votes

Ajout d’un paramètre de l’URL avec JavaScript

Dans une application web qui permet d'utiliser les appels AJAX, j'ai besoin de soumettre une demande, mais d'ajouter un paramètre à la fin de l'URL, par exemple:

URL d'origine:

http://server/myapp.php?id=10

URL:

http://server/myapp.php?id=10&enabled=true

La recherche d'une fonction JavaScript qui analyse l'URL à regarder chaque paramètre, puis ajoute le nouveau paramètre ou les mises à jour de la valeur si il en existe déjà un.

239voto

annakata Points 42676

Une implémentation de base dont vous aurez besoin d’adaptation devrait ressembler à ceci :

C’est environ deux fois plus vite qu’un regex ou solution de recherche basé, mais cela dépend entièrement de la longueur de la chaîne de requête et de l’indice de n’importe quel match


la méthode regex lent j’ai établie par rapport à pour l’amour d’achèvements (environ +150 % plus lent)

68voto

Il s’agit d’une solution très simple. Sa ne contrôle pas existence de paramètre, et il ne change pas la valeur existante. Il ajoute votre paramètre à la fin, ainsi vous pouvez obtenir la dernière valeur dans votre code principal.

67voto

Mehdi Points 199

Je vous remercie tous pour votre contribution. J’ai utilisé le code de annakata et modifié afin d’inclure également le cas où il n’y a aucune chaîne de requête à l’url du tout. Espérons que cela aiderait.

35voto

Garrett Points 89

Voici une version très simplifiée, faire des compromis pour la lisibilité et moins de lignes de code au lieu de performances optimisées micro (et nous parlons de quelques millisecondes différence, réaliste... en raison de la nature de cette (fonctionnant sur le courant emplacement du document), ce sera très probablement être couru une fois sur une page).

Vous pouvez utiliser ce type alors :

20voto

meouw Points 21368

J’ai une « classe » qui fait ça et c’est ici :

J’ai remplacé la méthode toString, donc il n’y a pas besoin d’appeler QS::getQueryString, vous pouvez utiliser QS::toString ou, comme je l’ai dans les exemples justes compter sur l’objet étant converti en une chaîne.

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