3 votes

Transmettre une variable JavaScript via une URL

J'ai une page qui définit quelques variables en utilisant javascript Math.random() comme indiqué.

var RandomValue1 = Math.floor(Math.random() * 5);
var RandomValue2 = Math.floor(Math.random() * 6);
var string = array1[RandomValue1];
var string = array2[RandomValue2];

J'aimerais permettre à un utilisateur de transmettre la valeur RandomValue via l'URL à une autre personne. Lorsque la deuxième personne va sur l'URL partagée, RandomValue est la même valeur que celle de la première personne - de sorte que la deuxième personne voit la même 'chaîne' que la première personne.

Je suis assez nouveau dans la conception web et la programmation web donc je ne sais pas si cela doit être traité côté serveur ou côté client.

Je suppose que je dois transmettre une URL quelque chose comme page1.html?RandomValue1=1&RandomValue2=3 mais je ne parviens pas à faire en sorte que la page définisse ensuite ces variables et charge. Est-ce possible en JavaScript ?

2voto

dimusic Points 4083

Vous pouvez lire les variables GET avec javascript. Voici une fonction d'exemple (source):

function getUrlVars() {
  var vars = {};
  var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
    vars[key] = value;
  });
  return vars;
}

Utilisation:

var first = getUrlVars()["id"];
var second = getUrlVars()["page"];

alert(first);
alert(second);

1voto

Joshua Points 2623

Votre assumption est correcte. Vous devez mettre ces variables dans l'URL en tant que PARAMÈTRES. Je suggèrerais également d'utiliser un "#" au lieu de paramètres réels pour ne pas risquer de mettre à jour la page à chaque fois, donc l'URL ressemblerait à mondomaine.com/page.html#RandomValue1=1&RandomValue2=3.

Vous pouvez utiliser Javascript pour obtenir / définir ces paramètres en utilisant la méthode window.location.href. Au chargement de la page, le Javascript vérifiera s'il y a un "#" et analysera tout ce qui se trouve après dans l'URL. Après le chargement de la page, un Javascript peut être utilisé pour mettre à jour ces paramètres.

Consultez le lien suivant pour la documentation complète sur l'utilisation de window.location:

https://developer.mozilla.org/fr/docs/Web/API/Location

Oh, et voici une bibliothèque javascript qui pourrait vous aider à y arriver plus rapidement. Elle fonctionne avec le signe dièse ('#') et parse (déparamètre) automatiquement les paramètres pour vous, les assignant à des chaînes / objets, etc. que vous pouvez ensuite utiliser.

http://benalman.com/projects/jquery-bbq-plugin/

0voto

FunkyMonk91 Points 1359

Je le ferais en PHP.

Vous pouvez mettre un champ caché sur votre page (dans un formulaire). Définissez la méthode du formulaire sur GET et définissez l'action sur une autre page PHP.

0voto

Justin Ethier Points 57486

Vous devrez utiliser le serveur pour coordonner les données entre les deux clients. En d'autres termes, le premier utilisateur devrait soumettre sa valeur aléatoire au serveur - cela pourrait être fait en utilisant une URL GET comme page1.html?RandomValue1=1 bien que vous pourriez vouloir rechercher les requêtes POST.

Quoi qu'il en soit, le deuxième utilisateur pourrait ensuite aller à l'URL partagée pour voir la valeur stockée sur le serveur.

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