Trasferire dati di una variabile globale

Francesco Monti

Utente Attivo
12 Feb 2016
35
0
0
Ciao a tutti, ho un programma formato da qualche pagina HTML in cui sono contenuti codici javascript. Il problema è che ho dichiarato una variabile globale in un foglio, e quando vado per richiamarla in un'altra pagina mi da che è completamente vuota. Premetto che l'ho dichiarata globale in un foglio HTML e non in un file .JS esterno.
Qualcuno saprebbe aiutarmi?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
non sono molto esperto in js, ma credo che le varibili globali di js possano essere viste si all'interno di varie funzioni, ma solo nella stessa pagina, se cambi pagina il valore si perde.
probabilmente se devi passare i valori di una variabile da una pagina ad un altra devi ricorrere ad un linguaggio dinamico lato server (es. php)
altra soluzione (se non dico put...te) puo essere creare un cookie con js e andare a leggerlo nella pagina che richiami
 

Francesco Monti

Utente Attivo
12 Feb 2016
35
0
0
Ho appena seguito la guida grazie, solamente mi trovo in difficoltà perchè io nei cookies voglio salvare numeri e non stringhe. Qualche consiglio?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.039
146
63
PR
www.borgo-italia.it
ciao
prova con eval()
ho trovato in rete questo esempio, modificando la var x in stringa
HTML:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to evaluate/execute JavaScript code/expressions.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
    var x = "10";
	var x = eval(x);
    var y = 20;
    var a = eval("x * y") + "<br>";
    var b = eval("2 + 2") + "<br>";
    var c = eval("x + 17") + "<br>";

    var res = a + b + c;
    document.getElementById("demo").innerHTML = res;
}
</script>
</body>
</html>
output
giusto anche se 10 è una stringa
 

Francesco Monti

Utente Attivo
12 Feb 2016
35
0
0
Ciao, ho provato ed ho impostato il codice così:
Codice:
 scriviCookie("j", "0");
    scriviCookie("c", "0");
    var j = leggiCookie(j);
    var c = leggiCookie(c);
    var j = eval(j);
    var c = eval(c);

    var riepvet = new Array();
    function controllo() {
        
        if ((src1 == "") || (src1 == "undefined")) {
            alert("Selezionare un'immagine.");
        }
        else if(eval("j == 0")) {
            riepvet[eval(c)] = src1;
            eval(c++);
            for (var k = 0; k < c; k++) {
                alert(riepvet[k]);
            }
            location.href = "schienale.html";
            eval(j++);
            
        }
        else if (eval("j==1")){
            riepvet[eval(c)] = src1;
            c++;
            for (k = 0; k < c; k++) {
                alert(riepvet[k]);
            }
            location.href = "riep.html";
            eval(j++);
        }    
}
Il problema è che non funziona! Dove sbaglio?
 

Francesco Monti

Utente Attivo
12 Feb 2016
35
0
0
Qualcuno che sappia aiutarmi? Ho letto che i cookies in javascript non sono gestiti in maniera ottimale, sarebbe quindi meglio utilizzare il local storage, voi che dite?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, se non hai ancroa risolto puoi provare con il webstorage di html5 , molto semplice
Codice:
 if (localStorage.valore) {
        alert("valore prente : " + localStorage.valore);
    } else {
        localStorage.valore = 100;
        alert("valore inserito Aggiorna")
    }
edit
non avevo visto il tuo ultimo messaggio. si molto meglio.