| | |
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
|
Toto není dotaz, naopak všeobecná rada na otázku "Ako spraviť prepínanie stránok na webe, aby som v nich nemusel opakovat obsah - menu, hlavička atd?" Kedysi sa na to používali rámy, dnes sa používá php funkcia include. Jej použitie je tak jednoduché, že sa toho nemusí báť ani niekto bez znalosti php.
Dajme tomu ze chcem niaku takúto stránku:
Potrebujem záhlavie, menu, obsah a pätu to by sa vyriešilo veľmi ľahko:
Kód: <html> <head> <title>Titulok</title> </head> <body> <div id="Zahlavie"> --- Záhlavie --- </div> <div id="menu"> --- Menu --- </div> <div id="obsah"> --- Obsah --- </div> <div id="pata"> --- Päta --- </div> </body> </html>
Do obsahu dam funkciu include() cize by to malo byt niako takto: Kód: <html> <head> <title>Titulok</title> </head> <body> <div id="Zahlavie"> --- Záhlavie --- </div> <div id="menu"> --- Menu --- </div> <div id="obsah"> <?php include("stranka.html"); ?> </div> <div id="pata"> --- Päta --- </div> </body> </html>
Do stranka.html dam iba to co sa ma zobrazit v obsahu. Dalej odkazy v menu budu nasledovne: Kód: <a href="?odkaz=1">Odkaz 1</a> <a href="?odkaz=2">Odkaz 2</a> <a href="?odkaz=3">Odkaz 3</a> <a href="?odkaz=4">Odkaz 4</a> <a href="?odkaz=5">Odkaz 5</a>
A aby sme tomu vyhoveli kod by mal byt niaky takyto: Kód: <html> <head> <title>Titulok</title> </head> <body> <div id="Zahlavie"> --- Záhlavie --- </div> <div id="menu"> <a href="?odkaz=1">Odkaz 1</a> <a href="?odkaz=2">Odkaz 2</a> <a href="?odkaz=3">Odkaz 3</a> <a href="?odkaz=4">Odkaz 4</a> <a href="?odkaz=5">Odkaz 5</a> </div> <div id="obsah"> <?php $odkaz = $_GET['odkaz']; // $odkaz = ?odkaz if(empty($_GET) OR empty($odkaz)) { include("uvod.html"); // Inkludni uvod.html do obsahu } else { if(isset($odkaz)) // $odkaz bol definovany { include($odkaz.".html") or die("Chyba 404 !"); /* [bodka] znazornuje + cize ak by bol teraz odkaz 1 napr. index.php?odkaz=1 inkludlo by 1.html. Ak includovany subor neexistuje alebo prislu k poruche vytlaci chybu a skoci sa cele parsovanie skriptu. */ } } ?> </div> <div id="pata"> --- Päta --- </div> </body> </html>
No to by bolo. Ale aj tak vacsina ludi tvrdi ze sa nebude menit title. Aj pri frames sa nemenilo ale ja som sa vynasiel a je to velmi lahke aby sa title menilo, tu je uz definitivny kod: Kód: <html> <head> <?php $title = $_GET['odkaz']; $title = str_replace("1", "- O mne", $title); $title = str_replace("2", "- Kontakt", $title); echo <<< HTML <title>Moj web $title</title> HTML; ?> </head> <body> <div id="Zahlavie"> --- Záhlavie --- </div> <div id="menu"> <?php include("menu.html"); // Inkludni menu s odkazmi ?> </div> <div id="obsah"> <?php $odkaz = $_GET[''odkaz']; // $odkaz = ?odkaz if(empty($_GET) OR empty($odkaz)) { include("uvod.html"); // Inkludni uvod.html do obsahu } else { if(isset($odkaz) AND File_Exists($odkaz."html")) // $odkaz bol definovany a uvedeny subor existuje { include($odkaz.".html"); /* [bodka] znazornuje + cize ak by bol teraz odkaz 1 napr. index.php?odkaz=1 inkludlo by 1.html. */ } else {
include("404.html"); // Inkludni error 404
} } ?> </div> <div id="pata"> --- Päta --- </div> </body> </html>
Miesto odkaz=1 atd.. mozem byt aj odkaz=o-mne. Samozrejme kazdy si ho este musi upravit tak ako mu vyhovuje ...
Zhrnutie clanku:
Naco budem robit vela dokumentov napr. index.html, o-mne.html atd. ?
Ked chcem nieco zmenit v menu alebo zahlavie alebo nieco ine moze ma aj urvat kym to vo vsetkych dokumentoch spravim. Niekedy sa proti tomuto pracovalo s frames ktore menili tak ako includes len urcitu cast. Bolo to ale nedostacujuce. Teraz je modernejsia moda a s nou aj jazyk php a jeho funkcia include(). Vsetko co frames nemaju to include() rozhodne ma ; a je tak lahka a jednocuha,ze sa jej nemusi bat ani programator bez nalosti php.
|
|
Registrovaný: 04.04.08 Prihlásený: 27.02.12 Príspevky: 531 Témy: 27 Bydlisko: Nitra | Napísal P3CKIV: 17.06.2008 16:19 | |
|
Zdá sa mi, že tu máš chybu - Kód: $odkaz = $_GET[''odkaz']; // $odkaz = ?odkaz malo by byť Kód: $odkaz = $_GET['odkaz']; // $odkaz = ?odkaz
Pre pochopenie, máš tam 2x '
_________________ V príprave... |
|
| Napísal autor témy Ded'leg: 17.06.2008 17:07 | |
|
Dik ale ... to uz musi spravit mod ... na to totiz uz nedokazem upravit ...
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.06.2008 18:20 | |
|
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 17.06.2008 18:29 | |
|
a co tak pomocou tohoto?
Kód: function getHTTPObject(){ if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP"); else if (window.XMLHttpRequest) return new XMLHttpRequest(); else { alert("Your browser does not support AJAX.");return null;} }
|
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.06.2008 18:34 | |
|
A čo tak robiť stránky trochu prístupné?
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 17.06.2008 18:44 | |
|
je natom nieco zle??
_________________ getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 Bydlisko: BA - WESTSIDE | Napísal p360t: 17.06.2008 18:49 | |
|
No áno, keďže by si to chcel robiť AJAXOM, ľudia s nietakúplnebežnými nastaveniami by boli ľudovo povedané "v keli", pretože by sa im napísala krásna hláška "Your browser does not support AJAX". AJAX je fajn vec, ale nie je to nástroj na každučkú vec na webe a toto je jednoducho prípad výlučne server-side skriptov.
Odstrihol by si od webu ľudí, ktorí nemajú zapnutý JS (ok, tých je málo), ľudí ktorí používajú nie úplne štandardné prehliadače (napr. ľudí s mobilmi, tých je stále viac a viac) a za to by si získal o pár bajtov menší request (čo je úplné nič).
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 16.05.07 Prihlásený: 01.08.17 Príspevky: 837 Témy: 6 | Napísal juho: 17.06.2008 18:56 | |
|
no vidis to nechodili by ti tam aspon mobile...dobry napad s tym ajaxom
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 17.06.2008 19:54 | |
|
Citácia: Kedysi sa na to používali rámy, dnes sa používá php funkcia include ja len, ze include a frames su dve tak rozdielne veci, ze nemaju nic spolocne.
skor by som bol za tvrdenie: kedysi sa pouzivali ramy, dnes sa pouziva ajax.
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
prečo suchy je to dobre kedy si sa na tieto hlúposti využivali frame alebo sa vypisovalo všetko ...
dnes sa to robí include, require alebo ako chceš ... ale php neslúži iba na to
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 19.06.2008 14:53 | |
|
este raz opakujem, ze frame ma uplne iny vyznam ako include. pri frame dosiahnes to, ze sa ti obnovi iba cast stranky, preto pisem, ze dnes sa to nahradza skor ajaxom, pri ktorom vies tiez docielit aby sa ti obnovila len cast stranky.
naopak include len zahrna subor do ineho suboru a vysledny vystup sa tvari ako jeden subor, pokazde sa musi obnovit cely. dalej mi ukaz ako premennu z jedneho frame pouzivas v druhom.
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
fajn môžeš môj starý vymazať ...
|
|
| Napísal autor témy Ded'leg: 19.06.2008 17:47 | |
|
suchy píše: este raz opakujem, ze frame ma uplne iny vyznam ako include. pri frame dosiahnes to, ze sa ti obnovi iba cast stranky, preto pisem, ze dnes sa to nahradza skor ajaxom, pri ktorom vies tiez docielit aby sa ti obnovila len cast stranky. naopak include len zahrna subor do ineho suboru a vysledny vystup sa tvari ako jeden subor, pokazde sa musi obnovit cely. dalej mi ukaz ako premennu z jedneho frame pouzivas v druhom.
A co tak torichu logiky ?
Ved iba cast stranky ale include tiez az nato ze sa cela stranka znova nacita a podla mna je to lepsie lebo ked je navsetvnik na stranke a ty zrazu zmenis menu tak sa mu to ukaze co by sa pri frames nedalo a sychy ak budes taky laskavy tak mi oprav tu chybu o ktorej bola rec v druhom prispevku.
|
|
Registrovaný: 17.10.06 Prihlásený: 08.01.11 Príspevky: 1752 Témy: 17 | Napísal suchy: 19.06.2008 20:02 | |
|
ja nehovorim, ze include je zly. ja len poukazujem na to, ze tu porovnavate dve veci, z ktorych kazda sluzi na nieco ine.
btw chybu som opravil
_________________ A Real Programmer might or might not know his wife's name. He does, however, know the entire ASCII code table. |
|
Registrovaný: 21.06.08 Prihlásený: 11.12.19 Príspevky: 84 Témy: 20 | Napísal Slappy: 05.07.2008 17:39 | |
|
zdravim skusal som tento anvod ale volako mi to nejde ja mam predstavu nieco takeho ze by som mal jeden index.php kde by boli kody atd vsetko nahodne a ked kliknete na nejaky link v menu tak to vyda odkaz www.link.sk/index.php?page=faq a v tom faq.php by bol cisto len text a nacitalo by ho do tak isot ako ten index.php len by sa tam zmenil text neviem ako este polopatisticky vam to vysvetlit ak nepochopite pls ale aj tak pomozte
|
|
| Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|