18. juni 2006 - 22:17
Der er
3 kommentarer
Hvordan henter jeg sidens titel fra et array og bruger den?
Hejsa, Jeg har efterhånden rodet mig ud i et par tråde, som jeg ikke længe kan overskue. Jeg prøver lige igen og forfra: Jeg har et array: <?php $validPages = array( 'index', 'dokumenter', 'jura', ); ?> det henter jeg med: <?php if (isset($_GET['p']) && in_array($_GET['p'], $validPages)) { if(file_exists("includes/" . $_GET['p'] . ".txt")) { include("includes/" . $_GET['p'] . ".txt"); } elseif(file_exists("includes/nyheder/" . $_GET['p'] . ".txt")) { include("includes/nyheder/" . $_GET['p'] . ".txt"); } else { include("includes/default.txt"); } } else { include("includes/default.txt"); } ?> Fint nok - det virker. Menuen burde jeg jo generer automatisk, men af forskellige grunde bliver den lavet manuelt således: <li> <a href="index.php?p=forsiden">Forsiden</a></li><br /> <li> <a href="index.php?p=dokumenter">Diverse dokumenter</a></li><br /> <li> <a href="index.php?p=jura">juridisk rådgivning</a></li><br /> Fint nok - det virker. Men ... findes der mon ikke en fiks måde, hvorpå jeg i mit array kan angive hver sides titel, som vil kunne hentes med noget $title i f.eks. index-skabelonens <title<</title> og måske også i de enkelte siders <h1></h1>? Det kunne jo også bruges i forbindelse med noget dynamisk highligt af det valgte menupunkt (så jeg slipper for det her i hvert menupunkt: <li<?php if ($thisPage=="jurabummelum") echo " id=\"currentpage\""; ?>> <a href="index.php?p=juridisk rådgivning">Page One</a></li><br /> med <?php $thisPage="jurabummelum"; ?> i starten af jura-siden) Det er vel noget med sådan noget her: <?php $validPages = array( 'index' => 'Forsiden', 'dokumenter' => 'diverse dokumenter', 'jura' => 'juridisk rådgivning', ); ?> Men hvordan får det det stykket sammen, så skidtet stadig kigger efter filen jura.txt i den pågældende mappe men henter Juridisk Rådgivning de steder, hvor jeg ønsker det? Jeg sender naturligvis venlige tanker og en h
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
du kan jo lave et 2-dimensionelt array... altså: $validPages[0][0] = "index"; $validPages[0][1] = "Forsiden"; $validPages[1][0] = "dokumenter"; $validPages[1][1] = "Diverse Dokumenter"; $validPages[2][0] = "jura"; $validPages[2][1] = "Juridisk rådgivning"; Så kan du rette det her fra: <?php if (isset($_GET['p']) && in_array($_GET['p'], $validPages)) { if(file_exists("includes/" . $_GET['p'] . ".txt")) { include("includes/" . $_GET['p'] . ".txt"); } elseif(file_exists("includes/nyheder/" . $_GET['p'] . ".txt")) { include("includes/nyheder/" . $_GET['p'] . ".txt"); } else { include("includes/default.txt"); } } else { include("includes/default.txt"); } ?> til: <?php if (isnumeric($_GET['p']) && in_array($_GET['p'], $validPages)) { if(file_exists("includes/" . $validPages[$_GET['p']][0] . ".txt")) { include("includes/" . $validPages[$_GET['p']][0] . ".txt"); } elseif(file_exists("includes/nyheder/" . $validPages[$_GET['p']][0] . ".txt")) { include("includes/nyheder/" . $validPages[$_GET['p']][0] . ".txt"); } else { include("includes/default.txt"); } } else { include("includes/default.txt"); } ?> så ville jeg i stedet for i dine links bruge indexet i arrayet i stedet for sidenavnet.. det vil give dig følgende til menuen... for $i = 0 to count($validPages) { echo "<a href=\"index.php?p=$i\""; if ($i = $_GET['p']) { echo " id=\"currentPage\""; } echo ">$validPages[$i][1]</a><br />"; } sådan ca. har ikke testet, men efter rettelse af et par syntax fejl er det vidst ok... }
Du kan vel noget i stil med: <?php $validPages = array("index" => "Forsiden", "dokumenter" => "Diverse dokumenter", "jura" => "Juridisk rådgivning"); foreach($validPages as $key => $text) { echo"<a href=\"". $_SERVER["PHP_SELF"] ."?p=". $key ."\">". htmlentities($text) ."</a><br />\r\n"; } if(isset($_GET["p"], $validPages[$_GET["p"]])) { echo"<p>". $validPages[$_GET["p"]]; } ?> Og så bruge is_file() da den tjekker om det er en fil
jeg prciserer lige ... Menuen laves manuelt (jeg skal bruge omnkring 6 forskellige lokale menuer til lige så mange fanmeblade), så det eneste jeg skal vide er hvordan jeg henter det navn, jeg har knyttet til filens navn. ras
Vi tilbyder markedets bedste kurser inden for webudvikling