NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Avatar
Matyáš Procházka:20.3.2014 20:31

Edit: Promiňte za chybějící titulek

"Objektivní proměnná"

Ahoj,

řeším jeden zákeřný problém a nevím, co s tím...

Mám zhruba tento html code:

<select id="vyber">
    <option value="test1">Test 1</option>
    <option value="test2">Test 2</option>
</select>
<div id="vypsat">
</div>

V JS s Jquery mám zhruba toto:

var test1 = new Array("Bla bla","Bla bla");
var test2 = new Array("Bla bla","Bla bla");

$("#vypsat").text($("#vyber").val()[1]);

A potřeboval bych něco následujícího:
A by se mi v tomto případě vypsalo 2 slovo ze zvolené řady... Jak nějak zajistit objektivní proměnou, která si vezme název ze zvoleného option...

Nyní to prostě vypíše druhé písmeno z hodnoty value.

Nevěděl by si někdo rady?

Editováno 20.3.2014 20:32
 
Odpovědět
20.3.2014 20:31
Avatar
Neaktivní uživatel:20.3.2014 20:34
var test1 = new Array("Bla bla","Bla bla");
var test2 = new Array("Bla bla","Bla bla");

$("#vypsat").text($("#vyber").val("test2"));
Nahoru Odpovědět
20.3.2014 20:34
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Matyáš Procházka:20.3.2014 20:39

? Nějak moc nechápu, co by to přesně mělo provést? Mě to maximálně vypsalo chybu :D

 
Nahoru Odpovědět
20.3.2014 20:39
Avatar
Odpovídá na Matyáš Procházka
Neaktivní uživatel:20.3.2014 20:42

Aha, to teda nevím. Mně to funguje. Omlouvám se

Nahoru Odpovědět
20.3.2014 20:42
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Matyáš Procházka:20.3.2014 20:44

A co ti to provede? Já potřebuji, pokud zvolím option třeba "test2", aby to vypsalo nějaké slovo z pole test2, a pokud zvolím jinou možnost, aby to vypsalo slovo z pole se stejným názvem :)

 
Nahoru Odpovědět
20.3.2014 20:44
Avatar
Odpovídá na Matyáš Procházka
Neaktivní uživatel:20.3.2014 20:50

Aha, spatne jsme si rozumeli.

Nahoru Odpovědět
20.3.2014 20:50
Neaktivní uživatelský účet
Avatar
Neaktivní uživatel:20.3.2014 21:07

Tak, byly mensi trable s jquery CDN ale funguje to. Zde to je :

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

        <title></title>
</head>
<body>
<select id="vyber">
    <option value="test1">Test 1</option>
    <option value="test2">Test 2</option>
</select>
<div id="vypsat">
</div>
<script>
var test1 = new Array("Bla bla","Bla bla");
var test2 = new Array("Bla bla","Bla bla");

$("#vypsat").text(window[$("#vyber").val()]);
$("#vyber").change(function(){$("#vypsat").text(window[$("#vyber").val()]);});


</script>
</body>
</html>
Editováno 20.3.2014 21:07
Nahoru Odpovědět
20.3.2014 21:07
Neaktivní uživatelský účet
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Matyáš Procházka
Honza Bittner:22.3.2014 14:07

Co takhle využít objektu. Nevím teď jak se to přesně zapisuje, avšak nějak takto?

var test = {
  jedna: ["bla","haf"],
  dva: ["mnau","béé"]
}

Kde můžeš využít jak test.jedna tak i test[jedna].

? :)

Nahoru Odpovědět
22.3.2014 14:07
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Honza Bittner
Matyáš Procházka:23.3.2014 22:22

To, co oba píšete nevystihuje můj problém, tedy pokud jsem špatně nepochopil já..

No takhle já bych přesněji řečeno potřeboval toto:

Opravdu zjednodušeně:

var zvirata = new Array("Pes","Slon","Gepard","Vydra");
var lide = new Array("Spisovatel","Úředník","Policista");

var vybranaSkupina = "zvirata";

var slovo = vybranaSkupina[1];

A vypíše to Slon, protože vybraná skupina má název "zvirata" a to pole se také jmenuje zvirata.... Pokud za proměnou vybranaSkupina dosadim "lide" vezme si to druhou pozici z pole "lide"... A by se vždy, když cokoli dosadím jako hodnotu proměné "vybranaSkupina" stal vlastně její název... a při "vybranaSkupi­na[cislo]" si to vzalo slova z pole s názvem jako má hodnotu proměná "vybranaSkupina"

 
Nahoru Odpovědět
23.3.2014 22:22
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Matyáš Procházka
Honza Bittner:23.3.2014 22:57

Toto funguje :

var obj = {
   zvirata: ["Pes","Slon","Gepard","Vydra"],
   lide: ["Spisovatel","Úředník","Policista"]
};

var vybranaSkupina = "zvirata";

alert( obj[vybranaSkupina][1] );
Nahoru Odpovědět
23.3.2014 22:57
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na Honza Bittner
Matyáš Procházka:23.3.2014 23:03

Anojo ;)
Zkoušel jsem to před tím a nefungovalo mi to... Asi jsem tam měl chybu :O
Tudíž ti chci moc poděkovat, ulehčí mi to totiž hodně práce :)

 
Nahoru Odpovědět
23.3.2014 23:03
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Matyáš Procházka
Honza Bittner:24.3.2014 9:04

Není zač.

Lepší řešení jsem zatím neviděl, ale toto by mělo býti dostatečné. :)

Nahoru Odpovědět
24.3.2014 9:04
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.