Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 28. 8. 2006, 14:16:22
Ahoj.
Nenapsal byste mi někdo <?php .....?> jehož pomocí by se načítala jakákoli stránka. Zkrátka, aby po kliknutí na tlačítko galerie se objevili fotky v oblasti, kterou mám nazvanou #hlavni a pak třeba po kliknutí na tlačítko ostatní objevilo se v #hlavni jiná stránka, kterou bych měl danou pod tímto tlačítkem. |
||
Casero Profil |
#2 · Zasláno: 28. 8. 2006, 14:17:41
include??...nebo jak to myslíš??
|
||
Anonymní Profil * |
#3 · Zasláno: 28. 8. 2006, 14:26:36
Pokusím se to lépe popsat. Je to určitě jednoduché. Je to téměř na každé stránce určitě.
Řekněme pro jednoduchost dvousloupcový layout. Mám menu <div id="menu"> <a href...................................>Galerie fotek</a> <a ...................................................................... >lkajf</a> </div> To vše mám nastylované a velikost nepodstatná, ale budiž 230x400. A ten druhý sloupec #hlavni <div id="hlavni> a tady by se měli měnit informace či fotky ap. dle toho co se zvolí za tlačítko v menu. </div> |
||
Casero Profil |
#4 · Zasláno: 28. 8. 2006, 14:31:22
dej tam třeba stránka.php?page=fotky
a pak include $_GET["clanek"].".php" v tom hlavním a už jen vytvoř stránky fotky.hp, v čem bude obsah obsahu...:-D |
||
koudi Profil |
#5 · Zasláno: 28. 8. 2006, 14:35:42
Anonymní
Jen tak pro upřesnění - nefunguje to jako iframe, že se načítá jen #hlavni, ale musíš znova načíst celou stránku. |
||
Anonymní Profil * |
#6 · Zasláno: 28. 8. 2006, 14:37:14
Takže takhle nějak?
<div id="menu"> <a href="fotky.php?page=fotky">Galerie fotek</a> </div> <div id="hlavni"> include$_GET["fotky"].".php" </div> |
||
Joker Profil |
#7 · Zasláno: 28. 8. 2006, 14:37:59
Není to tak těžké...
a tady by se měli měnit informace či fotky ap. dle toho co se zvolí za tlačítko v menu. - tohle si vždycky vyndejte do zvláštních souborů (bez hlavičky, jenom ten "vnitřek"- třeba příslušný <div>) No a potom použijte funkci include(), která vloží daný soubor na dané místo. Jak na to: Budete mít stránku řekněme index.php. To bude ta kostra. Všechny odkazy z tlačítek menu uděláte na index.php s nějakým parametrem, třeba: index.php?stranka=hlavni index.php?stranka=novinky index.php?stranka=fotky ... No a v index.php pak budete mít:
Funkce toho skriptu je doufám zřejmá... do menu dáte odkazy s parametrem třeba ta stranka, do PHP si potom dáte switch($_GET["stranka"]) a jednotlivé položky case se musí shodovat s tím, jaké hodnoty toho parametru stranka posíláte z menu. No a dovnitř těch souborů si naskládáte HTML kód, který má být uvnitř toho <div id="hlavni"> Zkusil jsem to napsat co nejjednoduššeji, je tam spousta místa pro zlepšování, já třeba začínal s něčím podobným a už to vylepšuju asi tři roky :o)))) |
||
Joker Profil |
#8 · Zasláno: 28. 8. 2006, 14:45:03
Takže takhle nějak?
<div id="menu"> <a href="fotky.php?page=fotky">Galerie fotek</a> </div> <div id="hlavni"> include$_GET["fotky"].".php" </div> No, skoro jo, akorát ten řádek s PHP má být: <?php include($_GET["page"].".php"); ?> Nicméně určitá nevýhoda tohohle řešení je, že ten skript umožňuje zobrazit defacto jakýkoliv soubor s příponou php, který máte na webu, takže pokud si nedáváte pozor, může se nějaký "zlý" návštěvník za pomoci speciálně sestavené adresy dostat i k něčemu, co by neměl vidět. Možná by stačilo pro ty vkládané soubory používat nějakou zvláštní příponu. No a neprůstřelné řešení je udělat to přes ten switch jak jsem psal já, tam máte pod kontrolou, jaké stránky zobrazíte. Ale zase je víc práce s přidáváním nových položek do menu. |
||
Anonymní Profil * |
#9 · Zasláno: 28. 8. 2006, 14:45:48
<div id="menu>
<a href="index.php?stranka=fotky">Galerie fotek</a> </div> <div id="hlavni"> <?php switch($_GET["stranka"]){ case "fotky": include("fotky.php"); break; ?> </div> Je to správně takhle? |
||
Joker Profil |
#10 · Zasláno: 28. 8. 2006, 14:50:01
Jo, mělo by být. Vyzkoušejte ;-)
Akorát ještě bych tam nechal tu část "default", kde by se vložila třeba hlavní stránka... prostě cokoliv, co se zobrazí, když někdo zadá jen index.php anebo zadá třeba index.php?stranka=blabla No a další stránky přidáte tak, že přidáte odkaz do menu a novou "case" položku do toho switche: case "neco": include("neco"); break; |
||
Anonymní Profil * |
#11 · Zasláno: 28. 8. 2006, 14:59:23
Díky mockrát. Tož bych vám za totok aj kupil pivo :)
Ale ještě jedna otázečka, reakce nakoudiho Jen tak pro upřesnění - nefunguje to jako iframe, že se načítá jen #hlavni, ale musíš znova načíst celou stránku. což způsobuje problik stránky že? To je další problém, který nevím jak vyřešit. |
||
Joker Profil |
#12 · Zasláno: 28. 8. 2006, 16:02:36
To je pravda. V Tom iframe se může načíst jen stránka obsažená v iframe, kdežto takhle je všechno jedna stránka a načítá se dohromady.
Ale pokud nemáte hodně velký kód stránky, tak ta prodleva není zas tak dramatická. Jinak existují technologie, pomocí kterých jde aktualizovat jen některé části stránky (AJAX), ale pro začátek bych se držel trochu víc při zemi ;-) |
||
Anonymní Profil * |
#13 · Zasláno: 28. 8. 2006, 16:26:09
Mám další problémek.
Vše funguje OK, ale pokud zadám adresu a najede mi web tak je tam napsaná chyba, což chápu, jelikož není dána úvodní strana. Až po kliknutí se objeví daný obsah. Jak ale udělat, aby při vstupu bylo v <div id="hlavni"> Vítejte</div>? pokud to vložím pomocí include zůstane to tam pevně. Takže když kliknu na galerii fotek tak se sice ukážou fotky ale nad tím je napsáno vítejte. Jak tedy udělat, aby to bylo jen na začátku a pak už ne? |
||
Anonymní Profil * |
#14 · Zasláno: 28. 8. 2006, 16:58:50
<div id="hlavni">
<?php switch($_GET["stranka"]){ case "hlavni": include("hlavni.php"); break; case "novinky": include("novinky.php"); break; case "fotky": include("fotky.php"); break; default: //cokoliv jiného echo('Neznámá stránka. Vyberte prosím stránku z menu vlevo'); break; } ?> </div> Nevím jak mám udělat, aby se hlavni.php ukázalo jako úvodní stránka. |
||
Casero Profil |
#15 · Zasláno: 28. 8. 2006, 17:06:27
třeba podmínka, if ení clanek, tak tam dej hlavni
|
||
Anonymní Profil * |
#16 · Zasláno: 28. 8. 2006, 18:15:13
Poraďte prosím jak to mám udělat a kam to mám vložit.
|
||
Anonymní Profil * |
#17 · Zasláno: 28. 8. 2006, 19:18:33
Pomozte prosím já nevím co s tím if, jak to mám udělat. :(
|
||
Anonymní Profil * |
#18 · Zasláno: 28. 8. 2006, 19:34:08
tu hlavni.php napiš do defautu, nějak:
<?php switch($_GET["stranka"]){ case "novinky": $otevri = 'novinky.php'; break; case "fotky": $otevri = 'fotky.php'; break; default: $otevri = 'hlavni.php'; break; } include ($otevri); ?> |
||
havs Profil |
#19 · Zasláno: 28. 8. 2006, 19:48:50 · Upravil/a: havs
ale ty máš všechno v jednom adresáři, asi by stačilo:
<?php $url=$_GET['$stranka'].".php"; if (file_exists($url)) { include ($url); } else { include ("hlavni.php"); } ?> a odkazovat: index.php?stranka=jmeno_bez_koncovky ... jé, nějak se mi odhlásila Opera - posl. anonym = já |
||
Joker Profil |
#20 · Zasláno: 28. 8. 2006, 20:57:47
Jak ale udělat, aby při vstupu bylo v <div id="hlavni"> Vítejte</div>?
Dyť jsem vám to už dvakrát psal! Dejte do do části default! poprvé: default: //cokoliv jiného echo('Neznámá stránka. Vyberte prosím stránku z menu vlevo'); break; podruhé: Akorát ještě bych tam nechal tu část "default", kde by se vložila třeba hlavní stránka... prostě cokoliv, co se zobrazí, když někdo zadá jen index.php anebo zadá třeba index.php?stranka=blabla |
||
Joker Profil |
#21 · Zasláno: 28. 8. 2006, 21:02:08
Jo, jestli nevíte, co tam vložit, tak to echo('neco'); prostě vypíše do stránky text "neco".
No anebo to echo smažte a místo něj tam vražte stejně jako u těch ostatních include("hlavni.php"); |
||
tiso Profil |
#22 · Zasláno: 28. 8. 2006, 22:50:10
<?php |
||
Anonymní Profil * |
#23 · Zasláno: 29. 8. 2006, 08:42:20
tiso
Přesně to, co jsem potřeboval. :) Díky moc všem za ochotu. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0