Avatar billede michaelb.dk Nybegynder
01. november 2004 - 18:17 Der er 17 kommentarer og
1 løsning

"if" i adresselinie "then"

Jeg skal bruge et helt specielt PHP script, jeg ved ikke engang om det kan laves, men tror det da! Det skal fungere således:

HVIS der i adresselinien er skrevet en bestemt tekst (f.eks. INDEX) skal der skrives en bestemt ting (i denne sammenhæng koden: style="display:none") i sourcekoden! HVIS IKKE teksten (INDEX) er skrevet i adresselinien skal der ikke stå noget!

Altså: If -> INDEX er skrevet i adresselinien -> Then -> style="display:none" skrives i sourcekoden!

Er det mon forståeligt nok? ;-)
Avatar billede Slettet bruger
01. november 2004 - 18:37 #1
hvis du i adressenlinjen har fx hjemmeside.dk/side.php?id=index er det let nok:

<? if ($_GET[id] == "index") echo "style=\"display:none\""; ?>
Avatar billede googolplex Novice
01. november 2004 - 19:18 #2
Eller måske:

<?php

if (strpos(strtolower($_SERVER['PHP_SELF']), 'index') !== false)
{
    echo 'style="display:none"';
}

?>

Hvis det bare skal være skrevet et eller andet sted i adresselinien :)
Avatar billede michaelb.dk Nybegynder
01. november 2004 - 19:31 #3
Kan man lave en ELSE, vil gerne have det på begge forslag!

Sådan at hvis der IKKE står INDEX nogen steder skriver scriptet måske 'style="display:block"';
Avatar billede coderdk Praktikant
01. november 2004 - 19:33 #4
if ( strpos( $_SERVER['REQUEST_URI'], 'index' ) > 0 )
{
  echo 'style="display: none;"';
}
Avatar billede coderdk Praktikant
01. november 2004 - 19:34 #5
echo 'style="display: ';
if ( strpos( $_SERVER['REQUEST_URI'], 'index' ) > 0 )
{
  echo 'none;"';
}
else
{
  echo 'block;"';
}
Avatar billede michaelb.dk Nybegynder
01. november 2004 - 19:38 #6
Det er helt kanon
Avatar billede coderdk Praktikant
01. november 2004 - 19:39 #7
:)
Avatar billede michaelb.dk Nybegynder
01. november 2004 - 19:45 #8
Kan jeg kun indsætte ét af disse script på mine sider! Det skal bruges på 8 forskellige steder i min kode! Men det er kun den første der fungerer!
Avatar billede Slettet bruger
01. november 2004 - 19:53 #9
prøv at skrive det der i den første gang:
if ($check = (strpos( $_SERVER['REQUEST_URI'], 'index' ) > 0))

og det her de andre gange:
if ($check)

(jeg er ikke sikker på om det virker, men prøv..)
Avatar billede michaelb.dk Nybegynder
01. november 2004 - 20:15 #10
men det skal ikke være de samme ord som skal bruges i scriptet!

F.eks. skal der ét sted bruges INDEX og et andet måske INDEX5
Avatar billede coderdk Praktikant
01. november 2004 - 20:31 #11
Og hvad skal der så ske? Hvis index så er display none, hvis ikke er den block - Hvilke andre muligheder har du? ;)
Er ikke sikker på hvad du mener...
Avatar billede michaelb.dk Nybegynder
01. november 2004 - 20:35 #12
Jeg ville have gjort således:

                <?php

                echo 'style="display: ';
                if ( strpos( $_SERVER['REQUEST_URI'], 'annoncer' ) > 0 )
                {
                  echo 'show;"';
                }
                else
                {
                  echo 'none;"';
                }
                  ?>

                <?php

                echo 'style="display: ';
                if ( strpos( $_SERVER['REQUEST_URI'], 'artikler' ) > 0 )
                {
                  echo 'show;"';
                }
                else
                {
                  echo 'none;"';
                }
                  ?>

                <?php

                echo 'style="display: ';
                if ( strpos( $_SERVER['REQUEST_URI'], 'diverse' ) > 0 )
                {
                  echo 'show;"';
                }
                else
                {
                  echo 'none;"';
                }
                  ?>

OSV, siger det dig noget?
Avatar billede coderdk Praktikant
01. november 2004 - 21:13 #13
Jooh hvis der er HTML imellem ;)

Så kunne man måske også gøre sådan:

<?php

  function shw( $word )
  {
    return 'style="display: ' . ( strpos( $_SERVER['REQUEST_URI'], $word ) > 0 ? 'block' : 'none' ) . ';";
  }

?>
<div <?= shw('index') ?>>index</div>
<div <?= shw('artikler') ?>>artikler</div>
<div <?= shw('diverse') ?>>diverse</div>
Avatar billede michaelb.dk Nybegynder
01. november 2004 - 21:31 #14
god ide, får bare parse error i <div <?= shw('x') ?>>x</div> og kan ikke lige se hvor fejlen er
Avatar billede coderdk Praktikant
01. november 2004 - 22:55 #15
My bad. Du aner ikke hvor smadret jeg er :) Prøv:

<?php

  function shw( $word )
  {
    echo 'style="display: ' . ( strpos( $_SERVER['REQUEST_URI'], $word ) > 0 ? 'block' : 'none' ) . ';"';
  }

?>
<div <? shw('index') ?>>index</div>
<div <? shw('artikler') ?>>artikler</div>
<div <? shw('diverse') ?>>diverse</div>
Avatar billede michaelb.dk Nybegynder
02. november 2004 - 20:08 #16
Det er helt kanon! Du skulle vel ikke kunne fortælle mig hvordan man henter hele urlen fra adresselinien ned, så man f.eks. kan skrive <?php echo $url; ?> og så står der http://www.eksperten.dk/spm/556820 :O)
Avatar billede coderdk Praktikant
02. november 2004 - 20:23 #17
echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
Avatar billede michaelb.dk Nybegynder
02. november 2004 - 20:55 #18
Hvor er det kanon ;-)
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