Autor | Zpráva | ||
---|---|---|---|
jirikovovideni Profil |
Zdraví poradí te mi kde mám chybu,už fakt nevím v html to fungovalo,ale v php se mi to neotevírá.díky
<script type="text/javascript"> function ukaz(u){ el = document.getElementById(u).style; el.display = (el.display == 'block')?'none':'block'; } </script> <?php echo '<table > '; echo ' <tr> '; echo '<td><a href="#" onclick="ukaz(clanek1)">klikni</a></td> '; echo ' </tr></table> '; echo '<div style="display: none;" id=(clanek1)> '; echo 'ahoj'; echo ' </div> '; echo ' </table> '; ?> |
||
Joker Profil |
#2 · Zasláno: 29. 3. 2015, 16:45:26
jirikovovideni:
Uvedený kód z hlediska PHP funguje. Koneckonců to je jen triviální sekvence echo příkazů a to PHP tam nic nedělá. To JS přepínání nefunguje z toho důvodu, že kolem ID elementu se v HTML nedělají závorky, ale uvozovky, takže tak, jak je to napsané, tam žádný element s id clanek1 není. |
||
weroro Profil |
#3 · Zasláno: 29. 3. 2015, 16:48:03
<?php echo '<table>'; echo '<tr>'; echo '<td><a href="#" onclick="ukaz(\'clanek1\')">klikni</a></td>'; echo '</tr></table>'; echo '<div style="display: none;" id="clanek1">'; echo 'ahoj'; echo '</div>'; echo '</table>'; ?> |
||
jirikovovideni Profil |
#4 · Zasláno: 29. 3. 2015, 17:02:02
weroro:
Tak nevím kde dělám chybu zkopíroval jsem kód a stále mi to nefunguje.Pak jsem zkusil onclick="ukaz"clanek1"" a taktéž to nefunguje |
||
Joker Profil |
weroro:
Šel bych přesně opačnou cestou (než přidávat PHP echo všude). V dané ukázce PHP nemá žádný smysl (kdyby tam vůbec nebylo, výsledek bude stejný) a vede k nepřehlednému a těžko udržovatelnému kódu. A dvojnásob bych nevypisoval každý řádek kódu jako zvláštní echo, což ještě dál komplikuje údržbu. Když už vypisovat kus HTML kódu přes PHP, nejlepší je podle mě HEREDOC syntaxe: <?php echo <<<KOD <table> <tr> <td><a href="#" onclick="ukaz(clanek1)">klikni</a></td> </tr></table> </table> KOD; jirikovovideni: „Pak jsem zkusil onclick="ukaz"clanek1"" a taktéž to nefunguje“ No, tak na tomhle místě se to zrovna změnit nemělo. Jenom HTML id, ne ta JS funkce v onclick. |
||
mimochodec Profil |
#6 · Zasláno: 29. 3. 2015, 17:30:06
Joker:
„nejlepší je podle mě HEREDOC syntaxe:“ Každému podle jeho vkusu, ale musím říct, že heredoc beru jako takovou kuriozitu, která se objevuje jen na fórech jako ukázka toho, co divného by taky šlo použít, kdyby o to někdo stál. werorův zápis je mi o dost bližší a není to jen kvůli zvýrazňovačům. Jen uvozovky a apostrofy mám radši opačně. |
||
jirikovovideni Profil |
Už jsem z toho jelen,omlouvám se ale nejsem zběhlý v php,jen chci něco jednoduchého vytvořit.Takže se zeptám takhle by měl vypadat celý kód ? protože mi to nefunguje
<script type="text/javascript"> function ukaz(u){ el = document.getElementById(u).style; el.display = (el.display == 'block')?'none':'block'; } </script> <?php echo '<table>'; echo '<tr>'; echo '<td><a href="#" onclick="ukaz(\'clanek1\')">klikni</a></td>'; echo '</tr></table>'; echo '<div style="display: none;" id="clanek1">'; echo 'ahoj'; echo '</div>'; echo '</table>'; ?> |
||
Joker Profil |
#8 · Zasláno: 29. 3. 2015, 18:14:41
mimochodec:
Podle mých zkušeností je zápis podle [#3] weroro jen stěží použitelný. - Snad žádný programátorský nástroj, a ostatně ani většina programátorů, se v takhle zapsaném HTML kódu nedokáže orientovat (ve smyslu např. odkud kam sahá určitá značka). - V kódu je nutné escapovat uvozovky, takže zejména pokud ten kód je mix HTML a JS, je výsledek nečitelný. - Oba předchozí body jsou neustálý zdroj chyb (vlastní zkušenost). - Těžko se v tom kódu dělají změny. - Problematicky se mění členění kódu na řádky. - Až jednou autor konečně dojde k tomu, že je lepší ten kód mít v externí HTML šabloně, bude se to těžko převádět. HEREDOC syntaxe se mezi HTML a PHP přenese jednoduše přes zkopírovat-vložit. „musím říct, že heredoc beru jako takovou kuriozitu, která se objevuje jen na fórech jako ukázka toho, co divného by taky šlo použít, kdyby o to někdo stál“ Ano, protože začátečníci a patlalové to neznají a pokročilejší programátoři to zase nepotřebují, protože nemívají v PHP skriptech větší bloky HTML kódu. Což nic nemění na tom, že pokud už někdo trvá na tom mít ve skriptu delší blok HTML kódu (moje první rada byla z toho to PHP úplně odstranit), HEREDOC je daleko lepší, než sekvence příkazů echo. jirikovovideni [#7]: „protože mi to nefunguje“ Tak bude problém někde jinde, mně uvedený kód funguje. Byť k němu mám výše uvedené výhrady a vedle nich ještě tu, že dát proměnné obsahující style objekt název „el“ je poměrně nešťastné (alespoň mně „el“ evokuje proměnnou obsahující element, takže jsem v první chvíli el.display automaticky vnímal jako chybu). |
||
mimochodec Profil |
#9 · Zasláno: 29. 3. 2015, 18:15:05
jirikovovideni:
Funguje: http://kod.djpw.cz/nwlb Něco děláš špatně. Pouštíš to někde, kde funguje php? Co se ti zobrazí jako zdroják stránky? |
||
Kubo2 Profil |
#10 · Zasláno: 29. 3. 2015, 18:17:10
jirikovovideni:
Neviem, čo je s tým klientským kódom za problém, pretože u mňa to normálne funguje. |
||
jirikovovideni Profil |
#11 · Zasláno: 29. 3. 2015, 19:01:58
Děkuji všem funguje to - ještě bych měl dotaz jak to udělat,když kliknu na klikni,ať mi okno nevyskočí nahoru ale jen se otevře a zůstane na místě
|
||
Časová prodleva: 10 let
|
0