Avatar billede rasmusc Nybegynder
14. juni 2006 - 20:44 Der er 15 kommentarer

array, hvordan tildele værdi?

Hejsa,

I mit array er:

$validPages = array(
'index',
'jura',
'politik');

Oki-doki ... det virker som det skal.

Filerne hentes sådan her:

      <?php
        if (isset($_GET['p']) && in_array($_GET['p'], $validPages) && file_exists("includes/" . $_GET['p'] . ".txt")) {
            // a page has been specified and is a valid option, and the required file exists
            // load content from relevant text file
            include("includes/" . $_GET['p'] . ".txt");
        } else {
            // no page specified -> load content from default.txt
            include("includes/default.txt");
        }
        ?>

Menuen laves manuelt sådan her (cirka):

<li <?php if ($thisPage=="jurabummelum") echo " id=\"currentpage\""; ?>><a
href="index.pgp?p=jura>Juridisk bistand</a></li>
<li <?php if ($thisPage=="polle fra snave") echo " id=\"currentpage\"";
?>><a href="index.pgp?p=politik>Juridisk bistand</a></li>

Den inkluderede fil jura.txt starter så med:

<?php $thisPage="jurabummelum"; ?> (og "polle fra snave" i politik.txt)

Herligt - i stylesheetet har jeg så noget halløjsa som f.eks: #navigation
#currentpage a {color; red} ... på den måde laver jeg min dynamiske highlogt
af det valgte menupunkt (jubiii jeg er stolt).

Nuvel - findes der mon ikke en smartere måde at give siden en titel på? Kan
man i array over valide sider knytte en sidetitel til siden? For eksempel
... denne kunne man vel også bruge i <title>sidetitel her</titlel>

F.eks. noget i retning af:


$validPages = array(
'index', => 'Forsiden',
'jura', => 'Juridisk rådgivning',
'politik' => 'Vores politik');

Juridisk rådgivning skulle så kunne genbruges forskellige steder, hvor det er relevant. Aber wodan?

ras
Avatar billede zynzz Praktikant
14. juni 2006 - 21:44 #1
$validPages = array(
'index', => 'Forsiden',
'jura', => 'Juridisk rådgivning',
'politik' => 'Vores politik');

if(isset($_GET['p'])){
$sti = $_GET['p'].".php";
$page = $_GET['p'];

if(file_exists($sti))
$titel = $validPages[$page]
else
$titel = "Siden findes ikke";}

Så udskriver du bare $titel hvor du vil, + ændre dit array
Avatar billede zynzz Praktikant
14. juni 2006 - 21:45 #2
$validPages = array(
'index', => 'Forsiden',
'jura', => 'Juridisk rådgivning',
'politik' => 'Vores politik');

if(isset($_GET['p'])){
$sti = $_GET['p'].".php";
$page = $_GET['p'];

if(file_exists($sti))
$titel = $validPages[$page];
else
$titel = "Siden findes ikke";}
Avatar billede rasmusc Nybegynder
14. juni 2006 - 22:11 #3
ok det prøver jeg. Bare for min forståelses skyld (jeg skal jo også helt lære noget af det).

'politik', => 'vores politik' gør at den valide side 'politik' får tilknyttet en værdi, der hedder 'vores politik' (og der kunne lige så godt have stået 'preben er en systisk dims') og den værdi kan så hentes alle mulige steder til alt muligt eller hvad?

Skal følgende fine kodestump så stå i headeren??

if(isset($_GET['p'])){
$sti = $_GET['p'].".php";
$page = $_GET['p'];

if(file_exists($sti))
$titel = $validPages[$page];
else
$titel = "Siden findes ikke";}

Og det den gør at at knytte $titel til den pågælende side (altså p??)

Så skriver <title><?php echo $titel ?></title> vil sidens titel få værdien efter => (og som knytter sig til den valide side)?

Men hvad gør $sti ? Skal jeg bruge den til min brødkrummer?

Håber jeg gør mig forståelig ...

ras
Avatar billede zynzz Praktikant
14. juni 2006 - 22:16 #4
$sti er den fil den tjekker om den findes hvis ikke sætter den værdien $titel til "siden findes ikke"
Avatar billede rasmusc Nybegynder
14. juni 2006 - 22:25 #5
ok - jeg gør et forsøg. Havde jeg ellers fattet det nogenlunde? Altså

if(isset($_GET['p'])){
$sti = $_GET['p'].".php";
$page = $_GET['p'];

if(file_exists($sti))
$titel = $validPages[$page];
else
$titel = "Siden findes ikke";}

er IKKE den kodesnip, der genererer sidens indhold men den, der får skidtet til at hænge sammen?

ras
Avatar billede zynzz Praktikant
14. juni 2006 - 22:28 #6
altså hvis du fx. skriver ?p=index så tjekker den om der er en fil der ´hedder index.php hvis der er laver den 'index', => 'Forsiden' altså sætter $titel = Forsiden, hvis ikke index.php findes sætter den $titel = siden blev ikke fundet
Avatar billede rasmusc Nybegynder
14. juni 2006 - 22:31 #7
yes yes - men skal ovenstående kode stå i headeren sammen med arrayet? Eller erstatter din fine kodestump følgende:

    <?php
        if (isset($_GET['p']) && in_array($_GET['p'], $validPages) && file_exists("includes/" . $_GET['p'] . ".txt")) {
            // a page has been specified and is a valid option, and the required file exists
            // load content from relevant text file
            include("includes/" . $_GET['p'] . ".txt");
        } else {
            // no page specified -> load content from default.txt
            include("includes/default.txt");
        }
        ?>

ras
Avatar billede zynzz Praktikant
14. juni 2006 - 22:32 #8
Ja det gør den
Avatar billede zynzz Praktikant
14. juni 2006 - 22:32 #9
Men tjek lige koden efter jeg har ikke set om den virker...
Avatar billede rasmusc Nybegynder
14. juni 2006 - 22:40 #10
hehe - med mit ganske begrænsede kendskab skal det nok gå godt ;-)

Nuvel - er jeg ikke nødt til at fortælle dyret i hvilken mappe (i virkeligheden --> hvilke mapper), den skal ikke efter de filer, der skal inkluderes?

OG hvordan nu med det aktive menupunkt:

<li <?php if ($thisPage=="jurabummelum") echo " id=\"currentpage\""; ?>><a
href="index.php?p=jura>Juridisk bistand</a></li>

skal det så være:

<li <?php if ($thisPage=="<?php echo $titel?>") echo " id=\"currentpage\""; ?>><a
href="index.php?p=jura>Juridisk bistand</a></li>

oder was?

ras
Avatar billede rasmusc Nybegynder
15. juni 2006 - 11:56 #11
nikxe virker ikke:

får fejl på "else" ...

if(isset($_GET['p'])){
$sti = $_GET['p'].".php";
$page = $_GET['p'];

if(file_exists($sti))
$titel = $validPages[$page];
else
$titel = "Siden findes ikke";}
Avatar billede rasmusc Nybegynder
15. juni 2006 - 12:02 #12
aaah ...

Den kodesnut jeg bruger hedder:



<?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");
      }
?>


og leder jo så efter en .txt fil i mappen includes (eller i includes/nyheder). Hvordan fletter jeg det ind i din fine kodestump?

ras
Avatar billede zynzz Praktikant
15. juni 2006 - 20:09 #13
Men hvorfor vil du bruge en txt fil ?
Avatar billede rasmusc Nybegynder
16. juni 2006 - 09:20 #14
ikke af nogen speciel grund. Jeg kunne lige så godt bruge .php men det gør jo ingen forskel ...

ras
Avatar billede zynzz Praktikant
16. juni 2006 - 16:08 #15
Nu snakker vi hvis forbi hianden
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester