Autor | Zpráva | ||
---|---|---|---|
Banana Profil * |
#1 · Zasláno: 17. 3. 2012, 10:48:00
Mám stránku a u ní přes proměnné v url vkládám pomocí include další stránky, pochopitelně chci, aby se měnil titulek, ale když do titulku dosadím jednoduché echo $titulek a do vkládané stránky napíšu $titulek="Titulek", tak se titulek stránky nezobrazí, samozřejmě protože na server dorazí nejdřív hlavička, kde je ta proměnná titulek, ale jelikož ještě žádná není, není žádný titulek a hodnota proměnné dorazí až potom, ptám se tedy jak donutit server čekat na proměnnou, nebo jak to řešit?
|
||
Str4wberry Profil |
#2 · Zasláno: 17. 3. 2012, 10:57:12
|
||
Banana Profil * |
#3 · Zasláno: 17. 3. 2012, 11:40:12
To mi ale nefunguje - strukturu mám nějak takto :
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="/style.css" media="screen" > <?php echo '<title> '. $title .'</title>'; ?> </head> <body> <div id="obsah"> <?php $title = 'Titulek' include '/obsah.php'; ?> </div> </body> </html> |
||
Davex Profil |
#4 · Zasláno: 17. 3. 2012, 12:32:51
Banana:
„a titulek stále prázdnej“ Proměnnou $title vypisuješ v okamžiku, kdy ještě neexistuje. Musí se změnit pořadí - nejdřív nastavit proměnnou, a pak jí teprve vypsat. Na začátku si v rozhodovací logice ulož jméno includovaného souboru také do proměnné a HTML kód stránky posílej úplně nakonec.
|
||
Banana Profil * |
#5 · Zasláno: 17. 3. 2012, 12:42:29
Tomu nerozumím, nemohl byste prosím upravit kód výše do podoby takové, jaké myslíte?
|
||
Str4wberry Profil |
#6 · Zasláno: 17. 3. 2012, 12:48:58
A četl jsi pozorně?
Máš různé možnosti: 1) Uložit si výstup vkládaného souboru do proměnné, vložit jej před samotnou HTML kostrou stránky a v ní tu proměnnou vypsat. stranka.php: $titulek = "Název stránky"; $obsah = <<<EOT <h1>Název stránky</h1> <p>Test. EOT; <?php include "stranka.php" ?> <title><?=$titulek?></title> <div id=obsah> <?=$obsah?> </div> 2) Vytvořit si nějakou funkci, která titulek dosadí nezávisle na vkládaném souboru (podle stejného klíče jako se vkládá obsah): function zobrazTitulek($adresa) { $titulky = array( "uvod" => "Úvodní strana", "neco" => "Další strana" ); return in_array($adresa, array_keys($titulky)) ? $titulky[$adresa] : "Nevím jaká strana"; } <title><?php echo zobrazTitulek($_GET["strana"]) ?></title> 3) Volat si ve vkládaném souboru funkci hlavicka("Titulek") s předaným textem titulku, která vrátí HTML kód, co má být před samotným obsahem.
4) Vkládat do obsahu soubory s hlavičkou, navigací nebo patičkou. <?php include "hlavicka.php"; ?> <div id=obsah> <title>Titulek stránky</title> <p>Text stránky </div> <?php include "navigace.php"; ?> <?php include "paticka.php"; ?> 5) Využít toho, že prohlížeče zobrazí i <title> později v kódu.
<div id=obsah> <title>Titulek stránky</title> <h1>Nadpis stránky</h1> </div> 6) Doplnit titulek JavaScriptem. document.title = document.getElementsByTagName("h1")[0].innerHTML; Postupy 5 a 6 doporučuji použít pouze v krajních případech. |
||
Banana Profil * |
#7 · Zasláno: 17. 3. 2012, 13:50:31
Nešlo by jednoduše vytvořit si nezávisle seznam proměnných, který se vloží před titulek, a pak se zavolá proměnná? Ono jelikož využívám proměnné v url, tak by šla dosadit rovnou i ta, ale šlo by teda případně něco jako
<?php extract($_GET); if ($url=="stranka1") {$title=="Stránka 1"} elseif ($url=="stranka2") $title=="Stránka 2"; elseif ($url=="stranka3") $title=="Stránka 3"; ?> <?php echo '<title> '. $title .'</title>'; ?> |
||
Str4wberry Profil |
#8 · Zasláno: 17. 3. 2012, 14:01:05
Tak v podstatě funguje řešení 2, akorát mi přijde napsané přehledněji.
|
||
Časová prodleva: 29 dní
|
|||
Alphard Profil |
#9 · Zasláno: 15. 4. 2012, 12:57:09
|
||
Časová prodleva: 12 let
|
0