2 HTML, 1 JS - předání proměnných – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

2 HTML, 1 JS - předání proměnných – JavaScript, AJAX, jQuery – Fórum – Programujte.com2 HTML, 1 JS - předání proměnných – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Carduus0
Návštěvník
7. 8. 2011   #1
-
0
-

Dobrý den,
mám dotaz : Mám 2 HTML stránky, které na sebe navazují (v první je odkaz na druhou). V té první pomocí podmínky vytvořím proměnnou. V té druhé HTML chci zapsat obsah proměnné do tabulky, ale konzole mi píše, že proměnná není definována. Kod:


if (i == 0) {
	if (document.getElementById("answ2").style.backgroundColor == "green") {
		res1 = "Správně"; // to je ta proměnná
		points += 2;
	}
	else {
		res1 = "Špatně"; // toto je také ta proměnná
	}
	
}

Potřebuji, aby se v jednom HTML dokumentu vytvořila proměnná viz výše a druhém HTML dokumentu zapsala do stránky viz níže.


document.getElementById("result0").value = res1;

V obou stránkách je v hlavičce definována cesta ke scriptu.
Jak mám prosím udělat, aby mi to fungovalo?

Nahlásit jako SPAM
IP: 109.235.1.–
Řešení
1321645679876456
~ Anonymní uživatel
27 příspěvků
7. 8. 2011   #2
-
0
-
Vyřešeno Nejlepší odpověď

Co jsem ti říkal o těch zkratkách v názvech? :-D

Jinak zjednodušeně řečeno po refreshi stránky "jedeš nanovo", proměnné se při přechodu mezi stránkami neuchovávají. Je možnost jejich hodnoty předávat v url nebo uchovávat v cookies - ty jsou dostupné i po refreshi a uchovávají se po dobu, kterou jim určíš. Vlož si do stránky tenhle jednoduchý skript na uložení/přečtení cookies:

cookies = {
  
    /**
     * Nastaví cookie
     *
     * @param name Jméno
     * @param value Hodnota
     * @param expiration Počet dní pro uchování cookie(nepovinný)
     */
    set: function(name, value, expiration) {
        var date = new Date();
        date.setDate(date.getDate() + expiration);
        expiration = !expiration ? '' : ';expires=' + date.toUTCString();
        document.cookie = name + '=' + escape(value) + expiration;
    },
  
    /**
     * Vrací hodnotu cookie
     *
     * @param name Jméno
     */
    get: function(name) {
        if (document.cookie.length) {
            var start = document.cookie.indexOf(name + '=');
            if (start != -1) {
                start += name.length + 1;
                end = document.cookie.indexOf(';', start);
                if (end == -1)
                    end = document.cookie.length;
                return unescape(document.cookie.substring(start, end));
            }
        }
        return null;
    }
};

Potom stačí na jedné stránce cookie uložit:

cookies.set('test', 123);

A na druhé přečíst:

alert(cookies.get('test'));
Nahlásit jako SPAM
IP: 83.240.95.–
Carduus0
Návštěvník
7. 8. 2011   #3
-
0
-

Děkuji za rychlou odpověď. Ano zkraty... :D použil jsem je proto, že celé názvy jsou už obsazené.
Ještě mne napadá, že bych všechny prvky HTML dokumentu skryl a zobrazil nové. Tj. měl bych pouze jeden HTML. 

Nahlásit jako SPAM
IP: 109.235.1.–
1321645679876456
~ Anonymní uživatel
27 příspěvků
7. 8. 2011   #4
-
0
-

To by bylo úplně nejlepší řešení.

Nahlásit jako SPAM
IP: 83.240.95.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý