Avatar billede misscharlotte Nybegynder
21. november 2003 - 11:25 Der er 19 kommentarer og
1 løsning

Datostyret pop-up ved klik på billede

Hej :)

Jeg vil gerne lave en julekalender.

Ideen er at sætte tallene 1-24 på et billede. Ved klik på samme tal som dagens dato, skal der åbnes en pop-up med en gåde. Hvis man klikker på en dato, der ikke er lig med dags dato, skal man have en pop-up med en besked. Beskeden er ens for alle uvalide dage. Altså ... noget med at hvis-den-her-dato-ikke-er-korrekt-så-vis-den-her-specifikke-htm-fil.

Jeg vil meget gerne have det automatiseret, så jeg ikke skal uploade noget hver dag i december :)

Er der nogen, der ved hvordan jeg kan gøre det? Og er javascript en mulighed, eller er jeg i den forkerte kategori?

Jeg har set et eksempel på noget, der minder om det her: http://www.ahot.dk/julekalender/

På forhånd tak.

- Charlotte :)
Avatar billede roenving Novice
21. november 2003 - 11:34 #1
<script type="text/javascript">
function openWin(dato){
  var nu = new Date();
  var src = "";
  if(dato==nu.getDate()){
    src = "gaade" + d + ".html";
  }else src = "ingengaade.html"
  window.open(src,'gaadeVindue','width=300,height=200,status=no')
}
</script>

<img src="dato01.gif" onclick="openWin(this.src.substr(5,2));">
<img src="dato02.gif" onclick="openWin(this.src.substr(5,2));">
<img src="dato03.gif" onclick="openWin(this.src.substr(5,2));">
<img src="dato04.gif" onclick="openWin(this.src.substr(5,2));">
<img src="dato05.gif" onclick="openWin(this.src.substr(5,2));">
<img src="dato06.gif" onclick="openWin(this.src.substr(5,2));">
<img src="dato07.gif" onclick="openWin(this.src.substr(5,2));">
Avatar billede roenving Novice
21. november 2003 - 11:36 #2
-- glemte at præcisere, at dette er lavet udfra, at du har 25 selvstændige filer med gåder og fejltekst ...
Avatar billede misscharlotte Nybegynder
21. november 2003 - 11:45 #3
Fedt, det må jeg prøve.

Har lige et par spørgsmål:
Jeg synes at det ser ud til, at jeg skal have 24 gåde-filer og én fejltekst? Den, du har kaldt ingengaade.html?

Jeg kan ikke se, hvordan jeg skal navngive gåde-filerne?

Hvad betyder parametrene 5 og 2 i (this.src.substr(5,2)) ??

- Charlotte :)
Avatar billede roenving Novice
21. november 2003 - 11:55 #4
gåde-filerne skal hedde:

gaade01.html
gaade02.html
gaade03.html

-- for mit eksempel er bygget op om, at man tager datoen fra filnavnet på dato-billedet !-)
Avatar billede misscharlotte Nybegynder
25. november 2003 - 10:31 #5
Hej igen

Jeg har et par spørgsmål mere:

Jeg har det problem, at sitet, hvor kalenderen skal ligge, er bygget i asp. Der er en del includefiler, så jeg kan ikke bare julekalenderen til en html-fil.

Kan jeg nøjes med at omdøbe i scriptet, så der kommer til at stå:

<script type="text/javascript">
function openWin(dato){
  var nu = new Date();
  var src = "";
  if(dato==nu.getDate()){
    src = "gaade" + d + ".asp";
  }else src = "ingengaade.asp"
  window.open(src,'gaadeVindue','width=300,height=200,status=no')
}
</script>

Og er der i øvrigt noget til hinder for at det kan køre på en asp-side?

- Charlotte :)
Avatar billede roenving Novice
25. november 2003 - 12:31 #6
Ja, du kan lave dine filnavne, som du vil, bare det svarer til noget, som serveren sender !-)

-- og den eneste slags problemer der vil kunne komme er, hvis du insisterer på at lægge koden i Response.Write-sætninger, hvilket der dog her ingen grund er til ...

Problemer vil kunne opstå omkring brug af ""-er !o]
Avatar billede misscharlotte Nybegynder
25. november 2003 - 14:02 #7
Hej igen :)

Jubi, jubi, nu virker det. Fedt.

Tusind tak for hjælpen. Nu mangler jeg bare at finde ud af, hvordan jeg giver dig de der points. Er mit første besøg på Eksperten og jeg kan ikke finde entydigt svar på det her på siden, trods gennemlæsning af 'Om Eksperten' :|

Er der noget med, at du skal skrive til mig med et Svar og ikke en Kommentar? I så fald: Gør det, for så får du lige nogle points fra mig.

- Charlotte :)
Avatar billede roenving Novice
25. november 2003 - 14:07 #8
-- velbekomme '-)

-- og kig på:

http://expfaq.1go.dk
Avatar billede misscharlotte Nybegynder
25. november 2003 - 14:11 #9
Tak for tippet, du er bare alletiders!

- Charlotte :)
Avatar billede roenving Novice
25. november 2003 - 14:13 #10
-- og tak for points ;~}
Avatar billede misscharlotte Nybegynder
25. november 2003 - 14:16 #11
Og hey - Du kan se det foreløbige resultat her:
http://www.comwell.com/julekalender/default_julekalender.asp

- Charlotte :)
Avatar billede misscharlotte Nybegynder
26. november 2003 - 09:53 #12
Hej igen

Hm øv, jeg kan ikke få det til at virke. Nu har jeg oprettet en fil, der hedder gaade26.asp, og har navngivet et af billederme dato26.gif. Og så burde den vel virke idag? Det gør den bare ikke.

Jeg har sat dette ind i head:

<script type="text/javascript">
function openWin(dato){
  var nu = new Date();
  var src = "";
  if(dato==nu.getDate()){
    src = "gaade" + d + ".asp";
  }else src = "ingengaade.asp"
  window.open(src,'gaadeVindue','width=300,height=500,status=no')
}
</script>

Og ved billedet står der:
<img src="images/dato26.gif" onClick="openWin(this.src.substr(5,2));" alt="Julekalender 2003">

Jeg håber at du kan hjælpe.

- Charlotte :)
Avatar billede roenving Novice
26. november 2003 - 18:10 #13
Du har glemt at tælle 'images/' med i angivelsen, for så bliver det:

<img src="images/dato26.gif" onClick="openWin(this.src.substr(11,2));" alt="Julekalender 2003">
Avatar billede misscharlotte Nybegynder
26. november 2003 - 21:59 #14
Hej igen

Ok, jeg var jo heller ikke klar over, hvad (5,2) betød :)
Men tusind tak for hjælpen. Jeg arbejder videre med det imorgen.

- Charlotte :)
Avatar billede roenving Novice
26. november 2003 - 22:00 #15
Velbekomme ,-)
Avatar billede roenving Novice
26. november 2003 - 22:04 #16
-- og for lige at klargøre det, så er .substr en funktion på et string-objekt (som alle tekststrenge medregnes til !-) som tager to argumenter:

(plads, længde), hvor plads er den første plads, som skal medregnes (0-baseret, så strengen starter i nummer 0) og længde er antal tegn som skal medtages.

Eksempel, du vil gerne have klaus ud af denne streng: "Heklausers".substr(2,5)
Avatar billede misscharlotte Nybegynder
27. november 2003 - 13:01 #17
Øv, det virker stadig ikke.

Jeg har sat flg. kode ind ved billedet:
<img src="images/dato27.gif" onclick="openWin(this.src.substr(11,2));" alt="Julekalender 2003" width="488" height="39">

Scriptet er det samme som før. Og der ligger et billede, der hedder dato27.gif i images-mappen. Men når jeg tester det, får jeg siden ingengaade.asp.

Nogen ideer til hvad der går galt?

PS! Du skal nok få nogle flere points for hjælpen.

- Charlotte :)
Avatar billede roenving Novice
29. november 2003 - 04:36 #18
Check resultatet af parsingen med en alert:

function openWin(dato){
alert(dato);
...

-- hvis den ikke siger 27 (eller 29 eller no'et) skal vi regulere substr-parametrene ...

Jeg blev lige lidt usikker på, om src ikke svarer den fulde sti tilbage, for hvis den gør skal vi en omvej for at finde datoen !-)
Avatar billede misscharlotte Nybegynder
30. november 2003 - 18:54 #19
Fik lige min kæreste til at kigge det igennem, og jeps, der var noget med at den kom med hele stien, og det derfor ikke virkede.

Jeg har nu ændret det til
onclick="openWin(1);"
onclick="openWin(2);"
onclick="openWin(3);"  etc etc
- altså med en kommando pr. dato. Muligvis lidt bøvlet ifht din mere automatiserede løsning, men det er ok overskueligt, når det nu kun er 24 dage, det drejer sig om. :)

Der var i øvrigt noget i scriptet, der ikke var helt rigtigt: Der skulle stå:
    src = "gaade" + dato + ".asp";
og ikke
    src = "gaade" + d + ".asp";

Men anyway ... tusind tak for din hjælp - uden den var det vist ikke blevet til noget :)

- Charlotte :)
Avatar billede roenving Novice
30. november 2003 - 19:22 #20
U'r welcome -- og tak for points ;~}
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