Passage de la Variable JavaScript d'une page html à une autre page

j'ai deux pages - "page 1" et "page 2". A la page 1 Il y a une zone de texte avec une valeur de par exemple 100 et un bouton à la fin.

En appuyant sur le bouton je veux javascript pour enregistrer la valeur de la textbox dans un mondial (?) variable et aller à la page 2. Avec la fenêtre".onload" je veux une deuxième fonction Javascript pour alerter la valeur sauvegardée à la page1.

Voici mon code Javascript:

<script type="text/javascript">

var price; //declare outside the function = global variable ?

function save_price(){

    alert("started_1"); //just for information

    price = document.getElementById('the_id_of_the_textbox').value; 

    alert(price); //just for information         
}

<script type="text/javascript">

function read_price(){

    alert("started_2");

    alert(price);

}

sur "page 1" j'ai ce bouton d'envoi avec:

<input class="button_send" id="button_send" type="submit" value="Submit_price" onclick="save_price();"/>

il démarre la fonction Javascript et me redirige correctement vers ma page 2.

mais avec ceci ont la deuxième page:

window.onload=read_price(); 

j'obtiens toujours une valeur" non définie " du prix de la variable globale.

j'ai beaucoup lu sur ces variables globales. E. g. à cette page: problème avec la variable globale.. mais je n'arrive pas à le faire marcher...

Pourquoi ça ne marche pas?

10
demandé sur Nisarg Shah 2015-01-04 15:49:11

3 réponses

sans lire votre code mais juste votre scénario, je résoudrais en utilisant localStorage. Voici un exemple, je vais utiliser prompt() pour faire court.

à la page1:

window.onload = function() {
   var getInput = prompt("Hey type something here: ");
   localStorage.setItem("storageName",getInput);
}

à la page 2:

window.onload = alert(localStorage.getItem("storageName"));

vous pouvez également utiliser des cookies mais localStorage permet beaucoup plus d'espaces, et ils ne sont pas envoyés aux serveurs lorsque vous demandez des pages.

23
répondu potasmic 2015-01-04 13:16:58

Votre meilleure option ici, est d'utiliser la Chaîne de Requête 'envoyer' la valeur.

comment obtenir la valeur de chaîne de requête en utilisant javascript

  • alors la page 1 redirige vers la page 2.le html?someValue=ABC
  • Page 2 peut alors lisez la chaîne de requête et en particulier la clé 'sometimes valeur'

Si c'est rien de plus qu'un exercice d'apprentissage, vous pouvez envisager les implications de sécurité de ce bien.

mondial les variables ne vous aideront pas ici car une fois que la page est rechargée, elles sont détruites.

5
répondu LiamB 2017-05-23 12:18:20

Vous avez quelques options différentes:

  • vous pouvez utiliser un routeur SPA comme SammyJS, ou Angularjs et ui-router, de sorte que vos pages sont stateful.
  • utilisez sessionStorage pour stocker votre état.
  • stockez les valeurs sur le hachage de L'URL.
0
répondu Martin 2015-01-04 13:16:06