J'ai cette URL:
site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc
ce dont j'ai besoin, c'est de pouvoir changer la valeur du paramètre d'url «lignes» en quelque chose que je spécifie, disons 10. Et si les «lignes» n'existent pas, je dois l'ajouter à la fin de l'url et ajouter le valeur que j'ai déjà spécifiée (10).
javascript
url
query-string
url-parameters
url-parsing
Sindre Sorhus
la source
la source
Réponses:
J'ai étendu le code de Sujoy pour créer une fonction.
Appels de fonction:
Version mise à jour qui prend également en charge les ancres sur l'URL.
la source
http://www.domain.com/index.php?action=my_action&view-all=Yes
et je dois changer la valeur "voir tout". Ma question SO qui a été fermée: stackoverflow.com/questions/13025880/…Je pense que vous voulez le plugin de requête .
Par exemple:
Cela fonctionnera quel que soit l'état actuel des lignes.
la source
window.location.pathname
.Pour répondre à ma propre question 4 ans plus tard, après avoir beaucoup appris. Surtout que vous ne devriez pas utiliser jQuery pour tout. J'ai créé un module simple qui peut analyser / stringifier une chaîne de requête. Cela facilite la modification de la chaîne de requête.
Vous pouvez utiliser la chaîne de requête comme suit:
la source
Petite solution rapide en pure js, pas de plugins nécessaires:
Appelez ça comme ça:
Ou, si vous souhaitez rester sur la même page et remplacer plusieurs paramètres:
modifier, merci Luc: Pour supprimer le paramètre tout à fait , passer
false
ounull
pour la valeur:replaceQueryParam('rows', false, params)
. Puisque0
est également faux , spécifiez'0'
.la source
Ben Alman a un bon jquery plug - in querystring / url ici qui vous permet de manipuler facilement le querystring.
Comme demandé -
Accédez à sa page de test ici
Dans Firebug, entrez ce qui suit dans la console
jQuery.param.querystring(window.location.href, 'a=3&newValue=100');
Il vous renverra la chaîne d'url modifiée suivante
Notez que la valeur de chaîne de requête a pour a est passée de X à 3 et a ajouté la nouvelle valeur.
Vous pouvez ensuite utiliser la nouvelle chaîne d'url comme vous le souhaitez, par exemple en utilisant document.location = newUrl ou modifier un lien d'ancrage, etc.
la source
TypeError: jQuery.param.querystring is not a function
jQuery.param.querystring
. Je suppose qu'ils ont remanié la bibliothèque.Une approche moderne consiste à utiliser des URLSearchParams basés sur la norme native . Il est pris en charge par tous les principaux navigateurs, sauf pour IE où ils sont polyfills disponibles
la source
site.fwx%3Fposition=1&archiveid=5000&columns=5&rows=10&sorting=ModifiedTimeAsc
ce qui est déroutant car ce n'est pas ce que vous auriez construit si vous l'aviez fait manuellement ...vous pouvez également le faire via JS normal
la source
Voici la manière moderne de modifier les paramètres d'URL:
la source
Une alternative viable à la manipulation de chaînes serait-elle de configurer un html
form
et de simplement modifier la valeur de l'rows
élément?Donc, avec
html
ça, c'est quelque chose commeAvec le JavaScript suivant pour soumettre le formulaire
Ne convient probablement pas à toutes les situations, mais pourrait être plus agréable que l'analyse de la chaîne d'URL.
la source
Vous pouvez utiliser ma bibliothèque pour faire le travail: https://github.com/Mikhus/jsurl
la source
Solution 2020 : définit la variable ou la supprime si vous passez
null
ouundefined
à la valeur.la source
URLSearchParams
cela ne fonctionne pas dans les dernières versions de tous les principaux navigateurs (2020)J'ai écrit une petite fonction d'aide qui fonctionne avec n'importe quelle sélection. Tout ce que vous avez à faire est d'ajouter la classe "redirectOnChange" à n'importe quel élément de sélection, et cela entraînera le rechargement de la page avec un paramètre de chaîne de requête nouveau / modifié, égal à l'id et à la valeur de la sélection, par exemple:
L'exemple ci-dessus ajouterait "? MyValue = 222" ou "? MyValue = 333" (ou en utilisant "&" si d'autres paramètres existent), et rechargerait la page.
jQuery:
la source
Ici, j'ai pris la réponse d'Adil Malik et corrigé les 3 problèmes que j'y ai identifiés.
la source
Voici ce que je fais. En utilisant ma fonction editParams (), vous pouvez ajouter, supprimer ou modifier n'importe quel paramètre, puis utiliser la fonction intégrée replaceState () pour mettre à jour l'URL:
la source
Ma solution:
Ensuite, appelez simplement "setParams" et passez un objet avec les données que vous souhaitez définir.
Exemple:
Dans mon cas, j'ai dû mettre à jour une entrée de sélection html lorsqu'elle change et si la valeur est "0", supprimez le paramètre. Vous pouvez modifier la fonction et supprimer le paramètre de l'URL si la clé d'objet est également "null".
J'espère que cela vous aidera
la source
Une autre variation de la réponse de Sujoy. Juste changé les noms de variables et ajouté un wrapper d'espace de noms:
L'usage est maintenant:
la source
J'ai moi aussi écrit une bibliothèque pour obtenir et définir les paramètres de requête d'URL en JavaScript .
Voici un exemple de son utilisation.
Obtenez les paramètres de requête en tant qu'objet, par clé, ou ajoutez / modifiez / supprimez.
la source
Je cherchais la même chose et j'ai trouvé: https://github.com/medialize/URI.js qui est plutôt sympa :)
-- Mettre à jour
J'ai trouvé un meilleur package: https://www.npmjs.org/package/qs, il traite également des tableaux dans get params.
la source
Je sais que c'est une vieille question. J'ai amélioré la fonction ci-dessus pour ajouter ou mettre à jour les paramètres de requête. Encore une solution JS pure uniquement.
la source
ma fonction prend en charge la suppression des paramètres
la source
Je viens d'écrire un module simple pour gérer la lecture et la mise à jour des paramètres de requête d'url actuels.
Exemple d'utilisation:
Voici mon code nommé UrlParams. (Js / ts):
la source
la source