Autor Zpráva
Light King
Profil
Ahoj, mam kod napr.


<select name="jmeno">
<option value="1">aaaa</option>
<option value="2">bbbb</option>
</select>


a chtel bych, aby kdyz vyberu <option value="1">aaaa</option> vypsalo text...treba "cccc" a kdyz vyberu <option value="2">bbbb</option> tak napr "dddd". Slo by to nejak udelat ? (ten text by potom byl jinej to je jen pro priklad :) )
Diky moc kazdemu, kdo poradi.
Nox
Profil
Kam vypsalo? Někde do stránky? Přes javascript

<select name="jmeno" onchange="Vypis(this)">
<option value="1">aaaa</option>
<option value="2">bbbb</option>
</select>

<span id="nazev"></span>

<script type="text/javascript">
function Vypis(sel)
{
document.getElementById("nazev").innerHTML=document.sel.options[sel.se lectedIndex].innerHTML;
}
</script>
Light King
Profil
nejak mi to nefunguje :(
Nox
Profil
mám tam omylem mezeru v té [...] jestlis to kopíroval...
Jinak teď nevim...zkus FireFox DOM inspectora co to vypíše
Light King
Profil
nic mi to nevypise ani tak :( ale i tak diky :)
Trejpa
Profil
Light King
Na pořadí elementu SCRIPT může záležet.


Funkční úprava Noxova řešení:
(bez JavaScriptu si uživatel ani vyhledávací robot neškrtne)


<script type="text/javascript">
<!--
function Vypis(a)
{
if (a==1) document.getElementById("nazev").innerHTML="Text pro první volbu";
if (a==2) document.getElementById("nazev").innerHTML="Text pro druhou volbu";
}
//-->
</script>
<form name="sel" action="" onsubmit="return false;">
<select name="jmeno" onchange="Vypis(this.value);" onclick="Vypis(this.value);">
<option value="1">aaaa</option>
<option value="2">bbbb</option>
</select>
</form>
<div id="nazev"></div>


Moje řešení:
(při vypnutém JavaScriptu je vše vidět)


<script type="text/javascript">
<!--
function Zobraz(a)
{
document.getElementById("a01").style.display = "none";
document.getElementById("a02").style.display = "none";
document.getElementById("a03").style.display = "none";
if (a==1) document.getElementById("a01").style.display = "block";
if (a==2) document.getElementById("a02").style.display = "block";
if (a==3) document.getElementById("a03").style.display = "block";
}
//-->
</script>
<form name="druhy" action="" onsubmit="return false;">
<select name="druhe" onchange="Zobraz(this.value);">
<option value="1">aaaa</option>
<option value="2">bbbb</option>
<option value="3">cccc</option>
</select>
</form>
<div id="a01">Text 01</div>
<div id="a02">Text 02</div>
<div id="a03">Text 03</div>
<script type="text/javascript">
<!--
Zobraz(1); // prvotní inicializace
//-->
</script>
Str4wberry
Profil
Trejpa
při vypnutém JavaScriptu je vše vidět

Myslím, že to není moc cílem, protože nebude poznat, co k čemu patří.
Trejpa
Profil
Str4wberry
nebude poznat, co k čemu patří.
Může být. Formulář se vloží také scriptem a do každého DIVu se dá vhodný nadpis. Ale to je jen kosmetická úprava.
Str4wberry
Profil
Trejpa
Můžeš mi prosím ukázat takový příklad, nedovedu si to moc představit. Nechceš snad celý <select> > <option> vypsat JS.
Trejpa
Profil
Str4wberry
Nechceš snad celý <select> > <option> vypsat JS.
A proč ne? A i kdyby v tom byl problém, tak ten formulář může mít defaultně display: none a JavaSript ho může zviditelňovat.
Trejpa
Profil
Str4wberry
Můžeš mi prosím ukázat takový příklad
Takhle:

<script type="text/javascript">
<!--
function Zobraz(a)
{
document.getElementById("a01").style.display = "none";
document.getElementById("a02").style.display = "none";
document.getElementById("a03").style.display = "none";
if (a==1) document.getElementById("a01").style.display = "block";
if (a==2) document.getElementById("a02").style.display = "block";
if (a==3) document.getElementById("a03").style.display = "block";
}
function Pisform()
{
var a="";
a+='<form name="druhy" action="" onsubmit="return false;">';
a+='<select name="druhe" onchange="Zobraz(this.value);">';
a+='<option value="1">aaaa</option>';
a+='<option value="2">bbbb</option>';
a+='<option value="3">cccc</option>';
a+='</select></form>';
document.write(a);
}
Pisform();
//-->
</script>
<div id="a01"><h2>Nadpis 01</h2><p>Text 01</div>
<div id="a02"><h2>Nadpis 02</h2><p>Text 02</div>
<div id="a03"><h2>Nadpis 03</h2><p>Text 03</div>
<script type="text/javascript">
<!--
Zobraz(1); // prvotní inicializace
//-->
</script>
Str4wberry
Profil
Trejpa
To je geniální, někdo vypne JavaScript a neuvidí formulář :).
Trejpa
Profil
Str4wberry
To je geniální, někdo vypne JavaScript a neuvidí formulář :).
Ano, je to geniální, protože v tu chvíli ho na nic nebude potřebovat - slouží jen k přepínání části stránek - a ty jsou bez JavaScriptu vypsány všechny. Potom tam už nestraší a nemate neJavaScriptové návštěvníky. Ostatně podobnou metodu přepínání informací používá třeba i validátor - tam také: je-li JavaScript funkční, klikáním se přepíná metoda vstupu, není-li, vše je vypsáno pod sebou a původní přepínače tam nejsou (píše/zviditelňuje je script).
Str4wberry
Profil
Trejpa
Aha, tak to každý myslíme něco jiného.
Já myslel něco ve smyslu — vyberu z <option> aaaa a někde vedle se mi ukáže: „Vybral jsi možnost cccc“. A ne takovéto „kartové“ přepínání.
Trejpa
Profil
Str4wberry
vyberu z <option> aaaa a někde vedle se mi ukáže: „Vybral jsi možnost cccc“.
Ano, pokud by formulář sloužil i na něco jiného (odesílání) a zobrazení informace by bylo jen doplněním, tak je skrývání formuláře samozřejmě nežádoucí. Pokud je ale jen k záložkování, jak jsem pochopil ze zadání, tak je tam formulář bez scriptu nadbytečný.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: