Vinnaren i pepparkakshustävlingen!
2014-03-21, 17:53
  #1
Medlem
Har en hemsida kodat i HTML som är delat i olika sidor/filer.

Jag försöker ha ett ID för varje sida som ska anropa en funktion:

I body:

Kod:
<body<?php if(isset($pageId)) echo " id='$pageId' "; ?>>

Tilldelar ID till sidan:


Kod:
<header id="top">

 <nav class="navmenu">
  <a id="me"     href="me.php">Me</a>
 </nav>

Och ID inom nämnda sida:

Kod:
<?php 
$pageId = "me";

?>

Jag får ett fel, och det står "id='me' >" högst uppe i vänstra hörnet. Vart gör jag fel?
Citera
2014-03-21, 18:09
  #2
Medlem
your_kings avatar
Jag förstår inte riktigt och du lämnar ju inte ut något felmeddelande om du nu får det.

Men du skriver att du tilldelar sida id genom <a id="me" href="me.php">.
Det borde väl då vara <a href="me.php?pageid=me"> och sedan $pageId = $_GET['pageid'] eller har jag missförstått dig?
Citera
2014-03-21, 18:55
  #3
Medlem
Du visar för lite kod.

Spontant känns det dessutom som att du kommer få två element med samma id, vilket inte är tillåtet. Id ska vara unikt.
Citera
2014-03-24, 21:11
  #4
Medlem
Det jag försöker göra är att "highligta" menyvalet (subsidan) på min hemsida. Försöker göra detta genom att definiera en id per sida, och använda detta id för att styla elementen i stylesheeten. Hemsidan är dividerat i olika filer genom php-inlcude. Varje sida för sig själv, header, footer osv.

Definierar en variabel $pageId som jag skriver ut i min header.php och på så sätt sätter ett dynamisk id för varje sida.

Koden i subsidan me.php

Kod:
<?php 
include("incl/config.php");
$pageTitle = "titelnamn";
$pageId = "me";


$pageStyle = '
figure { 
 -webkit-border-radius: 10px;
 -moz-border-radius: 10px;
 border-radius: 10px;

 border-color:#5C0A0A;

 -moz-box-shadow: 10px 10px 5px #8A0F0F;
 -webkit-box-shadow: 10px 10px 5px #8A0F0F;
 box-shadow: 10px 10px 5px #8A0F0F;
}
';

?>

<?php include("incl/header.php"); ?>
<body id='me' >


<?php include("incl/footer.php"); ?>

Koden i header.php

Kod:
<head>

  <title><?php echo $pageTitle; ?></title>
  <?php if(isset($pageStyle)) : ?>
 <style type="text/css">
   <?php echo $pageStyle; ?>
 </style>
 <?php endif; ?> 		

	
</head>
<body><?php if(isset($pageId)) echo " id='$pageId' "; ?>>

<!-- Header -->
<header id="above">
 <nav class="related">
 </nav>
</header>




<header id="top">
 

 <nav class="navmenu">
  <a id="me-"     href="me.php">Me</a>
 </nav>

  </header>

Stylen definieras i ett separat CSS-fil (gäller när body#id och a#id stämmer överens)

Kod:
 body#me a#me-,
{background:#858585;border:2px solid #656565;} 


(tog bort icke-relevant kod som länk till CSS-fil etc).

Det funkar då menyvalet highlightas, MEN hemsidan skrivet ut ett irriterande "id='me' > " högst upp i högra hörnet. Varför?
__________________
Senast redigerad av AnteSwe 2014-03-24 kl. 21:18.
Citera
2014-03-27, 15:05
  #5
Medlem
woaaahs avatar
Citat:
Ursprungligen postat av AnteSwe
Det funkar då menyvalet highlightas, MEN hemsidan skrivet ut ett irriterande "id='me' > " högst upp i högra hörnet. Varför?

Förstår inte riktigt ditt problem här.


Detta är koden du använder för att skriva ut:
Kod:
<?php if(isset($pageId)) echo " id='$pageId' "?>
Allt inom " " skrivs ut på din sida, det vill säga: id='me'.

Exakt vilket resultat vill du ha?
Citera
2014-03-28, 16:24
  #6
Medlem
your_kings avatar
Du måste sätta in php koden i din <body[php]> inte <body>[php].

Det är därför den skriver ut id='me'
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback