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