Autor Zpráva
Euroblb
Profil
Ahoj lidi, tak jsem se tu zase po dlouhé době zjevil a potřeboval bych poradit asi s docela malou prkotinou.
Potřebuju změnit obsah webové stránky podle výběru s roletky <select></select>

příklad
vyberu v roletce pocet input(text)polí, a potřebuju vědět jak tyto pole zobrazit v závislosti na vybraném počtu, něco už jsem tak jakžtak vykutil ale pořád mi to nějak nefunguje. se mi to nemění tak, jak by mělo, teda vůbec né podle těch podmínek co jsem tam zadal....

předem děkuji za ochotu lidí kteří mi ochotně pomůžou tento problém vyřešit...
Euroblb
Profil
<body>
<script language="javascript">

function nastav() {

	if (pocet_sloupcu.value == "s3")
		p1.style.display
		= "";
		p2.style.display
		= "";	
		p3.style.display
		= "";
		p4.style.display
		= "none";
		p5.style.display
		= "none";
		p6.style.display
		= "none";
		p7.style.display
		= "none";
		p8.style.display
		= "none";
		p9.style.display
		= "none";
		p10.style.display
		= "none";

	if (pocet_sloupcu.value == "s4")
		p1.style.display
		= "";
		p2.style.display
		= "";	
		p3.style.display
		= "";
		p4.style.display
		= "";
		p5.style.display
		= "none";
		p6.style.display
		= "none";
		p7.style.display
		= "none";
		p8.style.display
		= "none";
		p9.style.display
		= "none";
		p10.style.display
		= "none";

	if (pocet_sloupcu.value == "s5")
		p1.style.display
		= "";
		p2.style.display
		= "";	
		p3.style.display
		= "";
		p4.style.display
		= "";
		p5.style.display
		= "";
		p6.style.display
		= "none";
		p7.style.display
		= "none";
		p8.style.display
		= "none";
		p9.style.display
		= "none";
		p10.style.display
		= "none";
}

</script>
<select id="pocet_sloupcu" onchange="nastav();">
	<option value="s2">2</option>
	<option value="s3">3</option>
	<option value="s4">4</option>
	<option value="s5">5</option>
	<option value="s6">6</option>
	<option value="s7">7</option>
	<option value="s8">8</option>
	<option value="s9">9</option>
	<option value="s10">10</option>
</select>

<div id="nazvy_sloupcu">
<input id="p1" type="text" name="sloupec1" value="zadejte název" maxlength="15" size="15" />
<input id="p2" type="text" name="sloupec2" value="zadejte název" maxlength="15" size="15" />
<input id="p3" type="text" name="sloupec3" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p4" type="text" name="sloupec4" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p5" type="text" name="sloupec5" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p6" type="text" name="sloupec6" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p7" type="text" name="sloupec7" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p8" type="text" name="sloupec8" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p9" type="text" name="sloupec9" style="display:none" value="zadejte název" maxlength="15" size="15" />
<input id="p10" type="text" name="sloupec10" style="display:none" value="zadejte název" maxlength="15" size="15" />
</div>


</body>


na ukázku.... snad to pomůže v tom pochopit co vlastně potřebuji
Měsíček
Profil
No .. trochu snahy by neuškodilo něco si přečti o metodě getElementById() a getElementsByTagName() .. k tomu by nebylo špatné si oprášit cykly (hlavně cyklus for(){}). Pak zkus sám něco ukutit, jestli se ti to ani tak nepodaří - tak ti to napíšu sám.
Euroblb
Profil
Měsíček
heh moc rád bych byl kdybych mohl říci že vím co některá z těch metod znamená, o javu jen tak letem světem vždy někde zavadím,
boužel zakopnu a rozbiju si čumák. javu trochu nechápu, je na mě až moc abstraktní. a navíc jsem si kdysi řekl že na web javu dávat nebudu, jen v malé míře a to jen a jen pro spříjemnění pobytu na webu, a né každý paskvil typu hodinu u kursoru atp., Tak bych byl rád za každou pomoc kterou můžeš poskytnou.
Cykly znám s PHP ale na javu si netroufám, což se týká i
if
, jen nechápu pro čty pdomínky nefungujou tak jak mají...
Měsíček
Profil
Nahoru dej

var pocet_sloupcu = document.getElementById("pocet_sloupcu");

mimochodem Java != Javascript ;-)
Euroblb
Profil
Měsíček
kampak nahoru? vím že jsem idiot, že se ptám, ale nedáví mi to smysl...a navic to ani nefachčí.
Měsíček
Profil
Reaguji na Euroblba:

Promiň, že jsem na tebe skoro zapomněl :), ale mohl jsem si na to udělat čas až dnes, svým příspěvkem jsem myslel, že to děláš:

1.) Tak, že chudák JS neví co tím "p1" myslíš, takže musíš mu pomocí metody (viz výše) ukázat co tím máš vlastně na mysli.
2.) Děláš to zbytečně složitě.

Zkus si například tohle (funkční):
<style type="text/css"> input {display:none;} </style>

<script type="text/javascript">
  function show (pocet) {
      for (var i = 0; i < document.getElementsByTagName("input").length; ) {
        document.getElementById("p[" + (++i) + "]").style.display = (i <= pocet) ? "block" : "none";
      }
    }
</script>

<form action="#">
  <input value="Zadejte název" id="p[1]" maxlength="15" size="15">
  <input value="Zadejte název" id="p[2]" maxlength="15" size="15">
  <input value="Zadejte název" id="p[3]" maxlength="15" size="15">
  <input value="Zadejte název" id="p[4]" maxlength="15" size="15">
  <input value="Zadejte název" id="p[5]" maxlength="15" size="15">
</form>

Zadej kolik chceš mít na stránce inputů :

<select onChange="show(this.value);">
  <option value="1">1</option>
	<option value="2">2</option>
	<option value="3">3</option>
	<option value="4">4</option>
	<option value="5">5</option>
</select>
Můžeš to dát místo toho svého, pracuje to IMHO rychleji a je to jednodušší.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0