Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno HTML - Zamenil som tlačítko za odkaz a aplikácia raz ide raz nie

Viete mi poradiť, prečo mi tento súbor funguje a vo veľkej aplikácii mi to včera išlo a dnes nie? Nezmenil som nič, len som vlastne včera vypol počítač a dnes zapol a nejde to. Ak odkaz vymením v tej aplikácii za tlačítko, tak to ide. V tomto ukážkovom príklade má odkaz aj tlačítko tú istú funkciu. Tento ukážkový príklad funguje aj vtedy, keď aplikácia nie, hoci odkazy <a> sú zapísané rovnako.

hidden_enter: <? echo $_POST["hidden_enter"] ?>
<br>
hidden_work: <? echo $_POST["hidden_work"] ?>
<br><br>
<?php
$id=10;
echo"
<form name='test_form' id='invoice_form' method='post' action=''>
	<a href='#' onclick=\"hidden_enter.value='hehehe'; hidden_work.value='$id'; test_form.submit();\">test</a>
	<input type='button' onclick=\"hidden_enter.value='hehehe'; hidden_work.value='$id'; test_form.submit();\" value='test'>
	<input id='hidden_enter' name='hidden_enter' type='hidden' value=''>
  <input id='hidden_work' name='hidden_work' type='hidden' value=''>
</form>";
?>
Předmět Autor Datum
Vidim hromadu (zbytecneho ?) JavaScriptu. :-) Takže z toho vyvozuji, že když v prohlížeči, kde to ne…
Flash_Gordon 27.02.2008 12:03
Flash_Gordon
Sprav to isté bez zbytočného JavaScriptu.:-D
msx. 27.02.2008 13:40
msx.
1. Pisal ti ze si mas pozriet JS konzolu v momente ked to nefunguje. Uz si si ju pozrel? 2. Je to to…
MM.. 27.02.2008 14:00
MM..
Toľko skúseností s JS ešte nemám, s PHP je to u mňa omnoho lepšie. Ale IE mi chybu nepísal. Písal mi…
msx. 27.02.2008 16:33
msx.
Dostal som radu zameniť '#' za 'javascript:void(0)'. Funguje mi to už v Opere, ale Firefox nejde ani…
msx. 27.02.2008 14:00
msx.
podla mna ti tam chybaju uvodne uvodzovky (t.j. \" na zaciatku), ale sak si to z toho JS daj vypisat…
MM.. 27.02.2008 14:03
MM..
Uvedený príklad je funkčný. To isté som mal implementované v rozsiahlej aplikácii (po zbalení takmer… poslední
msx. 27.02.2008 16:35
msx.
preistotu skus to href='#' zmenit na href=\"#\"
MM.. 27.02.2008 14:12
MM..
Takže mám to vyriešené. Problém nebol ani v zbytočnostiach, všetko, čo tam bolo, tak tam aj musí byť…
msx. 27.02.2008 16:25
msx.

1. Pisal ti ze si mas pozriet JS konzolu v momente ked to nefunguje. Uz si si ju pozrel?
2. Je to totalne neprehladne a kopec JS veci je tam IMHO zbytocnych, pokusal som sa tie 3riadky minutu lustit ale to je bez sance co to je tam za chaos, napis sem jasne ze co funguje (copy-paste zdrojak), a co nefunguje (copy-paste zdrojak) a ako presne to "nefunguje"

podla mna ti tam chybaju uvodne uvodzovky (t.j. \" na zaciatku), ale sak si to z toho JS daj vypisat niekam (trebars cez alert) a skontroluj si ze co za HTML kod to vygenerovalo. Podla toho budes vidiet ze co je zle.
P.S: resp. to tam mas PHP skript (az teraz som si to vsimol) tak sem daj to co ti ten php script vygeneroval (HTML kod)

Takže mám to vyriešené. Problém nebol ani v zbytočnostiach, všetko, čo tam bolo, tak tam aj musí byť. Úvodzovky boli tiež v poriadku, s tými bol problém predtým, ale už omnoho dávnejšie. Písal som predsa, že včera to išlo a dnes nie. Zrejme som tam urobil nejakú úpravu a Opera to už nezvládla a teda to dnes už nešlo. Takže riešenie:

IE - Internet Explorer
FF - Firefox
Op - Opera

Ako hlavný prehliadač používam Operu.

Takto ako to bolo mi to nefungovalo v žiadnom prehliadači.

1. Dostal som radu zameniť '#' za 'javascript:void(0)'. V Op mi to začalo fungovať.

2. Ďalej som dostal radu, že mám pri hidden prvkoch pridať aj formulár, čiže nie hidden_enter, ale test_form.hidden_enter. Od tejto chvíle začal fungovať IE pri použití '#', ale s JavaScriptom to stále nešlo. Vo FF to funguje aj s '#' aj s JavaScriptom.

3. Keďže IE s JavaScriptom stále nešlo, trochu som pobehal webové stránky a našiel som podobne riešený prihlasovací formulár na www.orangeportal.sk. Tam som si všimol, že v odkaze je použité href='javascript:document.form_login.submit()'. Skúsil som použiť toto miesto pôvodného 'javscript:void(0)'. Z onclick som vyradil submit(), nakoľko by bol zdvojený. Od tejto chvíle to funguje v IE, FF aj v Op. Problém považujem za vyriešený a dúfam, že to pôjde aj zajtra. ;-) Ale nakoľko prihlasovací formulár na OrangePortali mi funguje, keďže denne z FF aj z Op posielam niekoľko SMS, tak myslím, že sa už problém s týmto nevyskytne.

Edit: Toto je asi prvýkrát, kde som sa stretol s dosť značným rozdielom pri prehliadačoch. Ale keďže mám knižku o JavaScripte, tak tam som sa už stihol dočítať, že JavaScript v určitých detailoch je v každom prehliadači inak implementovaný.

Zpět do poradny Odpovědět na původní otázku Nahoru