Autor Zpráva
petey
Profil
Ahoj, Dobrý den,

dokázal by mi někdo poradit jak zapsat javascript, aby mi při odeslání formuláře, který filtruje select z DB do stejné stránky - tabulky pod formulářem, zobrazil navíc tlačítko vedle ODESLAT, RESET ?? Tuším, že se bude využívat visibility=hidden. Ale jak to zapsat tomu odkazu? Hádám nějak takhle podobně:
<a href="neco.php" style="visibility: hidden" onSubmit="this.style.visibility='visible'">Odkaz</a>
Darker
Profil
Onsubmit je event který musíš dát tomu formuláři. Ten se přece odesílá. Moc jsem nepochopil, co tu píšeš o formulářích co filtrují selecty ale asi chceš toto:
<form [...] onsubmit="this.reset.style.visibility='visible'">
<input type="submit" value="odeslat" /><input type="reset" value="Reset" name="reset" style="visibility: hidden" />
</form>
Připadně, pro odkaz:
<form [...] onsubmit="document.getElementById('odkaz').style.visibility='visible'">
<input type="submit" value="odeslat" /><a href="reset.php" id="odkaz" style="visibility: hidden"> Resetovat</a>
</form>
petey
Profil
Díky za nástin. Pochopil si mě dobře. Nicméně je mi jasné, že onSubmit musí být u formuláře, ale v takovém případě mi tlačítko jen problikne než se stránka stačí načíst s aktuálním filtrem. Dalo by se to tedy nějak upravit, aby se to načetlo při znovunačtení stránky po odeslání formuláře? Zřejmě se bude využívat <body onLoad ..., že?
Darker
Profil
Pokud nemáš k dispozici PHP použil bych v tomto případě cookies nebo parametry url (GET nebo #xxx). O všem třem si něco dohledej.
V případě toho křížku za url by to vypadalo takto:
<form [...] action="[...]#zobrazreset">
[...]<a href="reset.php" id="odkaz" style="visibility: hidden"> Resetovat</a>
</form>
<script type="text/javascript">
if(window.location.hash == "zobrazreset")
  [zobrazit odkaz]
</script>
petey
Profil
Díky za cenné příklady! Zkusím to tím posledním příkladem, případně to hodím PHPkem podobně jako u JS s předáním #zobraz za adresou a přes echo s podmínkou.
Darker
Profil
petey:
#zobraz za adresou a přes echo s podmínkou.
To nepůjde, anchor (nebo jak se té blbosti říká) se neodesílá, je to jen taková pomůcka pro vytváření kotev. V tomhle případě musí formulář vypadat takto:
<form [...] action="[...]?zobrazreset">
<?php if(isset($_GET["zobrazreset"]) {?>
<a href="reset.php" id="odkaz" style="visibility: hidden"> Resetovat</a>
<?php }?>
Další možností je toto:
<form method="post">
[...]
  <input type="submit" value="odeslat" name="odeslano" />
<?php if(isset($_POST["odeslano"]) {?>
<a href="reset.php" id="odkaz" style="visibility: hidden"> Resetovat</a>
<?php }?>
</form>

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: