Avatar billede jdjensen Juniormester
03. november 2011 - 15:57 Der er 8 kommentarer og
1 løsning

Link først aktiv på bestemt dato

Hej,

Er ved at lave en online julekalender som består af 24 kasser/div-bokse der hver især har et link. Men jeg vil jo ikke have at alle 24 links altid er aktive.

Mine div-bokse med indhold ligger skjulte og kommer først frem i en popup når man klikker på linket. Kodet således:

---------------------------------------------

<!-- 1. december -->
<div class="field opacity-75 divlinker"><a id="inline" href="#f1">1</a></div>
<div style="display:none">
<div id="f1">

<h1>1. december</h1>

</div>
</div>

<!-- 2. december -->
<div class="field opacity-75 divlinker"><a id="inline" href="#f2">2</a></div>
<div style="display:none">
<div id="f2">

<h1>2. december</h1>

</div>
</div>

... osv ... op til 24.

---------------------------------------------

1. december er det altså kun div'en ID="f1" (eller linket href="#f1") der skal være aktiv og på de resterende felter skal der så ikke ske noget når man klikker.

Og kan man lave det så det ikke afhænger af datoen på klientens computer (da man så kan snyde).

Jeg understøtter PHP hvis det ikke kan klares med script alene.
Avatar billede arne_v Ekspert
03. november 2011 - 18:56 #1
Du kan sagtens teste paa dato i PHP, saa du kan lave testet server side i PHP.
Avatar billede arne_v Ekspert
03. november 2011 - 19:03 #2
a la:

<?php
if(time() >= mktime(0, 0, 0, 11, 2, 2011)) {
    echo "2. november\r\n";
}
if(time() >= mktime(0, 0, 0, 11, 3, 2011)) {
    echo "3. november\r\n";
}
if(time() >= mktime(0, 0, 0, 11, 4, 2011)) {
    echo "4. november\r\n";
}
?>
Avatar billede jdjensen Juniormester
03. november 2011 - 22:31 #3
Hej arne, det er super man kan det. :) Og dog, hvordan får jeg lige flettet det sammen med mine div'er så hvis det er 2. december, så er det kun dette link der er aktivt imens de resterende 23 er inaktive? Sorry, jeg er ikke skarp i php. Nedenstående hvor jeg prøvede at isolere linket inde i betingelsen gav syntax error. :/

<!-- f1 -->
<div class="field opacity-75 divlinker"><?php if(time() >= mktime(0, 0, 0, 11, 1, 2011)) { <a id="inline" href="#f1">1</a> }?></div>
<div style="display:none">
<div id="f1">

<h1>1. december</h1>
Field1.

</div>
</div>
Avatar billede jdjensen Juniormester
03. november 2011 - 22:36 #4
(Er ikke sikker på ovenstående er den smarteste måde at gøre det på. Var bare lige det første jeg prøvede)
Avatar billede danco Nybegynder
03. november 2011 - 23:22 #5
function isActive($date) {
$today = date("dd-mm-yy");
$val = false;
if($date === $today) {
$val = true;
}
return $val;
}

for($i = 1; $i<=24; $i++) {
  if(isActive(mktime(0,0,0,11,i,2011))){
      echo i.' December er aktiv<br>';
  } else {
      echo i.' December er ikke aktiv<br>';
  }
}

Ovenstående er ganske utestet og hurtigt skrevet i ekspertens tekstfelt. Men bør give dig en idé om hvordan man kan gennemløbe og lave alle felter mens man beslutter om feltet er aktivt eller inaktivt.
Avatar billede jdjensen Juniormester
04. november 2011 - 09:54 #6
Hmm jeg kan ik få det til at virke. Synes også koden er blevet voldsom lang i forhold til arne_v's eksempel som jeg bedre kunne forstå men som jeg ikke kunne koble sammen med mit eget. Jeg vil bare gerne angive en dato og på den dato er linket i denne div aktivt:

<!-- 1. december -->
<div class="field opacity-75 divlinker"><a id="inline" href="#f1">1</a></div>
<div style="display:none">
<div id="f1">

<h1>1. december</h1>

</div>
</div>

Og jeg kan skifte datoen fra felt til felt så jeg f.eks. også kan bruge løsningen i forbindelse med påske osv.
Avatar billede jdjensen Juniormester
04. november 2011 - 10:17 #7
Og siden fejler hver gang jeg forsøger at have linket inde i min if-sætning! :((

Vil bare gerne have:
If date == (dag/måned/år) {
<a id="inline" href="#f1">1</a>
} else
intet link i sourcekoden
Avatar billede jdjensen Juniormester
04. november 2011 - 10:30 #8
Rettelse, i else{} skal der være en <div> for at designet ikke vælter. Så enten er det linket eller <div>'en der bliver vist hvilket datoen afgører. How?:

If date == (dag/måned/år) {
<a id="inline" href="#f1">1</a>
}
else {
<div id="inline">1</div> }
Avatar billede jdjensen Juniormester
04. november 2011 - 10:48 #9
Nå, jeg fandt selv løsningen som ser ud til at virke.

<?php
$day = date("d/m/Y");
  if ($day == "01/11/2011")
  echo "<a id='inline' href='#f1'>1</a>";
  else
  echo "<div id='inline'>1</div>";
?>
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