Avatar billede apo Praktikant
10. oktober 2004 - 17:31 Der er 19 kommentarer og
2 løsninger

Konvertering fra javascript til ASP

Hej.

Jeg har følgende javascript, der viser årstiden samt det aktuelle årstal (Eks. Efterår 2004):

    var months=new Array(13);
    months [1]="januar";
    months [2]="februar";
    months [3]="marts";
    months [4]="april";
    months [5]="maj";
    months [6]="juni";
    months [7]="juli";
    months [8]="august";
    months [9]="september";
    months [10]="oktober";
    months [11]="november";
    months [12]="december";
    var time=new Date();
    var lmonth=months [time.getMonth() + 1];
    var year=time.getFullYear();

function Aarstid() {

// Forår
    if((lmonth == "marts") || (lmonth == "april") || (lmonth == "maj"))
    document.write("<p>" + "Forår" + " " + year + "</p>");
// Sommer
    else if((lmonth == "juni") || (lmonth == "juli") || (lmonth == "august"))
    document.write("<p>" + "Sommer" + " " + year + "</p>");
// Efterår
    else if((lmonth == "september") || (lmonth == "oktober") || (lmonth == "november"))
    document.write("<p>" + "Efterår" + " " + year + "</p>");
// Vinter
    else if((lmonth == "januar") || (lmonth == "februar"))
    document.write("<p>" + "Vinter" + " " + year + "</p>");
// Vinter / Jul
    else
    document.write("<p>" + "Vinter / Jul" + " " + year + "</p>");

Er der én der kan konvertere ovenstående script til ASP-kode?

Jeg har opgivet at rode mere med det :-/

Apo
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:22 #1
Du kan gøre sådan her:


months = Split("januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december", ",")
lmonth = months(Month(date)-1)
aar = Year(date)

function aarstid

' Forår
    if ((lmonth = "marts") or (lmonth = "april") or (lmonth = "maj")) then
      response.write("<p>" & "Forår" & " " & aar & "</p>")
' Sommer
    elseif ((lmonth = "juni") or (lmonth = "juli") or (lmonth = "august")) then
      response.write("<p>" & "Sommer" & " " & aar & "</p>")
' Efterår
    elseif ((lmonth = "september") or (lmonth = "oktober") or (lmonth = "november")) then
      response.write("<p>" & "Efterår" & " " & aar & "</p>")
' Vinter
    elseif ((lmonth = "januar") or (lmonth = "februar")) then
      response.write("<p>" & "Vinter" & " " & aar & "</p>")
' Vinter / Jul
    else
      response.write("<p>" & "Vinter / Jul" & " " & aar & "</p>")
    end if
end function
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 18:25 #2
hmm...

tager du måneden var en streng der indeholder januar, februar etc. eller benytter du serverens dato..?
for hvis du gør det, kan du bruge..

<%
maaned = month(date)
select case maaned
case 3,4,5
response.write "forår " & year(date)
case 6,7,8
response.write "Sommer " & year(date)
case 9,10,11
response.write "Efterår " & year(date)
case 12,1,2
response.write "Vinter " & year(date)
end select
%>

altså du tager måneden ud fra serverens dato og derefter chekkes hvilken årstid der er tale om..
Prøv det engang. Er ret sikker på det vil virke..
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 18:26 #3
og har så ikke den med vinter jul med...
Men så skal det se ud som:

<%
maaned = month(date)
select case maaned
case 3,4,5
response.write "forår " & year(date)
case 6,7,8
response.write "Sommer " & year(date)
case 9,10,11
response.write "Efterår " & year(date)
case 1,2
response.write "Vinter " & year(date)
case else
response.write "Vinter / Jul " & year(dato)
end select
%>
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:28 #4
Ja det kan optimeres lidt, min var en direkte oversætelse :)
Avatar billede apo Praktikant
10. oktober 2004 - 18:33 #5
Hej begge to...

Jeg har prøvet at køre eagleeyes kode fra en include-fil (aarstid.inc), men det virker ikke. Skal extensionen være .asp hvis filen indeholder asp-kode (aarstid.asp)?

Apo
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 18:35 #6
ja... Du skal altid have asp-koder i aspfiler..!
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:35 #7
Du skal kalde funtionen aarstid for det virker vil du ikke havde funktionen den bare skal skrive det når filen includes skal det være sådan her:

months = Split("januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december", ",")
lmonth = months(Month(date)-1)
aar = Year(date)

' Forår
    if ((lmonth = "marts") or (lmonth = "april") or (lmonth = "maj")) then
      response.write("<p>" & "Forår" & " " & aar & "</p>")
' Sommer
    elseif ((lmonth = "juni") or (lmonth = "juli") or (lmonth = "august")) then
      response.write("<p>" & "Sommer" & " " & aar & "</p>")
' Efterår
    elseif ((lmonth = "september") or (lmonth = "oktober") or (lmonth = "november")) then
      response.write("<p>" & "Efterår" & " " & aar & "</p>")
' Vinter
    elseif ((lmonth = "januar") or (lmonth = "februar")) then
      response.write("<p>" & "Vinter" & " " & aar & "</p>")
' Vinter / Jul
    else
      response.write("<p>" & "Vinter / Jul" & " " & aar & "</p>")
    end if
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 18:35 #8
nej... og dog.. .Det skal man da vidst egentlig ikke når jeg tænker efter.. Er da i hvert fald ikke altid jeg selv har..

men prøv at lave navnet om..
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:36 #9
Den kan køre ASP kode i .inc filer dog kan man stjæle koden i .inc filer da serveren ikke sender .inc filer fordi ASP fortolkeren men direkte til browseren. Så derfor skal man undgå .inc filer.
Avatar billede apo Praktikant
10. oktober 2004 - 18:44 #10
Hmm... Nu har jeg prøvet sådan her, men det virker tilsyneladende ikke:

Indhold af include (aarstid.asp):

months = Split("januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december", ",")
lmonth = months(Month(date)-1)
aar = Year(date)

' Forår
    if ((lmonth = "marts") or (lmonth = "april") or (lmonth = "maj")) then
      response.write("<p>" & "Forår" & " " & aar & "</p>")
' Sommer
    elseif ((lmonth = "juni") or (lmonth = "juli") or (lmonth = "august")) then
      response.write("<p>" & "Sommer" & " " & aar & "</p>")
' Efterår
    elseif ((lmonth = "september") or (lmonth = "oktober") or (lmonth = "november")) then
      response.write("<p>" & "Efterår" & " " & aar & "</p>")
' Vinter
    elseif ((lmonth = "januar") or (lmonth = "februar")) then
      response.write("<p>" & "Vinter" & " " & aar & "</p>")
' Vinter / Jul
    else
      response.write("<p>" & "Vinter / Jul" & " " & aar & "</p>")
    end if

Kaldes med:

<!--#include file="../includes/aarstid.asp"-->

Hvad gør jeg forkert?

Apo
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:47 #11
Har du ASP start og slut tags omkring koden i include filen ?

<%

..koden her

%>
Avatar billede apo Praktikant
10. oktober 2004 - 18:47 #12
eagleeye > Jep, jeg har <% og %> i include-filen (aarstid.asp)

Apo
Avatar billede apo Praktikant
10. oktober 2004 - 18:51 #13
Jeg får følgende fejl:

Microsoft VBScript runtime error '800a000d'

Type mismatch

../includes/aarstid.asp, line 3

Apo
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:53 #14
Det forstår jeg ikke. Er dette linje 3?
lmonth = months(Month(date)-1)
Avatar billede apo Praktikant
10. oktober 2004 - 18:55 #15
eagleeye > ja, hvis <% er inkluderet i linjerne.

Underligt for det virker helt fint med ellebaeks kode?

Apo
Avatar billede eagleeye Praktikant
10. oktober 2004 - 18:58 #16
Og du har gjort sådan her?


<%
months = Split("januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december", ",")
lmonth = months(Month(date)-1)
aar = Year(date)

' Forår
    if ((lmonth = "marts") or (lmonth = "april") or (lmonth = "maj")) then
      response.write("<p>" & "Forår" & " " & aar & "</p>")
' Sommer
    elseif ((lmonth = "juni") or (lmonth = "juli") or (lmonth = "august")) then
      response.write("<p>" & "Sommer" & " " & aar & "</p>")
' Efterår
    elseif ((lmonth = "september") or (lmonth = "oktober") or (lmonth = "november")) then
      response.write("<p>" & "Efterår" & " " & aar & "</p>")
' Vinter
    elseif ((lmonth = "januar") or (lmonth = "februar")) then
      response.write("<p>" & "Vinter" & " " & aar & "</p>")
' Vinter / Jul
    else
      response.write("<p>" & "Vinter / Jul" & " " & aar & "</p>")
    end if
%>


Så bruge hans kode, mit virker fint hos mig.
Avatar billede apo Praktikant
10. oktober 2004 - 19:02 #17
eagleeye > Jeg har brugt den kode jeg skrev i mit indlæg kl. 18:44:32

Okay, jeg bruger ellebaeks kode, nu hvor det virker som det skal.

Jeg har lige et sidste spørgsmål: Er der nogle fordele/ulemper ved at bruge ASP i stedet for javascript, til at lave denne datofunktion (vil den kunne ses af alle)?

Apo
Avatar billede ellebaek Nybegynder
10. oktober 2004 - 19:06 #18
Når du benytter asp kan scriptet ses af alle, så længe serveren understøtter asp, da det er den der fortolker asp-koden og sender tekst (html) til browseren..

der kan være enkelte browsere der ikke understøtter javascript..

men smider et svar :-)
Avatar billede apo Praktikant
10. oktober 2004 - 19:14 #19
Ellebaek > Godt så. Jeg oplevede også lidt problemer med javascriptet, når det blev vist i Netscape, men der er ingen problemer med ASP-koden.

Ellebaek jeg bruger din kode så du får størstparten af pointene, men Eagleeye skal også have et par trøstpoints for sin tid.

Takker for hjælpen :-)

// Lukker

Apo
Avatar billede eagleeye Praktikant
10. oktober 2004 - 19:14 #20
Det enste jeg kan sige er prøv som jeg har vist det sidste gang.

ASP koden kan ikke ses af andre javascriptet kan ses af alle da det ligger i HTML koden.

ASP scriptet bruger serveren dato
Javascriptet bruger brugeres computers dato
Avatar billede apo Praktikant
10. oktober 2004 - 19:20 #21
Eagleeye > Hmm... Nu virker din kode pludselig? Underligt for umiddelbart er der ingen forskel på den kode jeg først brugte, og din sidste kode.

Meget spooky.

Apo
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
Kurser inden for grundlæggende programmering

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