Avatar billede torotune Nybegynder
02. april 2008 - 12:04 Der er 12 kommentarer og
2 løsninger

Kalde JavaScript-function fra ASP

Hej,

Dette har jeg lidt problemer med, selvom det skulle være lige til:
Jeg har i toppen af min side

<script language="javascript">

function getWeek(){
//noget kode

Return Week
}

</scrip>

Jeg vil så gerne kalde funktionen nede fra min asp-kode.
Funktionen returnerer et nummer. Burde det ikke kunne lade sig gøre med:

<%= call getWeek %>

Jeg får en meddelelse om at datatyperne ikke stemmer overens..
Avatar billede softspot Forsker
02. april 2008 - 12:16 #1
Du er klar over at funktionen getWeek() først eksisterer i browseren på klienten og at den derfor ikke kan kaldes fra serveren (eller nej, det er du nok ikke)?

Hvad er det du vil opnå? Det kan sikkert lade sig gøre på en anden måde...
Avatar billede torotune Nybegynder
02. april 2008 - 12:20 #2
Okay, jo det er da egentlig rigtigt..! Funktionen returnerer et nummer som jeg skal indsætte i en del af en URL længere nede på asp-siden. Hvordan kan jeg gøre dette?
Avatar billede softspot Forsker
02. april 2008 - 12:27 #3
Kan du ikke bare lave funktionen i ASP-koden på serveren i stedet for på klienten...?
Avatar billede torotune Nybegynder
02. april 2008 - 12:52 #4
Hvordan gør jeg det, altså mener du skrive javascript om til VbScript?
Avatar billede softspot Forsker
02. april 2008 - 13:09 #5
Ja, nu ved jeg af gode grunde ikke rigtig hvad din funktion indeholder, men det var da en oplagt mulighed :)
Avatar billede torotune Nybegynder
02. april 2008 - 13:29 #6
Det vil være lidt bøvlet.. Kan man ikke køre JavaScriptet når der klikkes på URL'en, så den danner destinationssiden her og viderestille til den? Funktionen ligger jo på klienten når siden er loaded en gang.
Avatar billede w13 Novice
02. april 2008 - 13:30 #7
Du skal enten køre funktionen, inden du kommer hen på siden, og så evt. overføre den som querystring: siden.asp?getweek=blabla

Eller vise os javascriptkoden her, så vi kan vurdere, om vi lige kan skrive den om til ASP.
Avatar billede torotune Nybegynder
02. april 2008 - 15:25 #8
Ok, kan måske lade sig gøre at skrive det om til VbScript, jeg er bare ikke så stærk i nogen af delene.

Det er denne funktion der returnere hvilken uge vi har pt:

function getWeek(day,month,year){

    month += 1; //use 1-12
    var a = Math.floor((14-(month))/12);
    var y = year+4800-a;
    var m = (month)+(12*a)-3;
    var jd = day + Math.floor(((153*m)+2)/5) +
                (365*y) + Math.floor(y/4) - Math.floor(y/100) +
                Math.floor(y/400) - 32045; 
    var d4 = (jd+31741-(jd%7))%146097%36524%1461;
    var L = Math.floor(d4/1460);
    var d1 = ((d4-L)%365)+L;
    NumberOfWeek = Math.floor(d1/7) + 1;
    return NumberOfWeek;       
}
Avatar billede w13 Novice
02. april 2008 - 15:31 #9
Følgende skulle vist kunne gøre det.

<%Function getWeek(day,month,year)
getWeek=DatePart("ww",DateSerial(year,month,day))
End Function%>
Avatar billede softspot Forsker
02. april 2008 - 15:37 #10
eller (men samme koncept)

<%
Function getWeek(day,month,year)
  getWeek = DatePart("ww", year & "-" & month & "-" & day, 2, 2)
End Function
%>
Avatar billede softspot Forsker
02. april 2008 - 15:39 #11
...dvs. forskellen er at du specifikt fortæller funktionen at du vil benytte mandag som første ugedag og den første uge i året er den med mindst 4 dage...

...og DateSerial er nok bedre at bruge end strengsammensætningen som jeg foreslog.
Avatar billede torotune Nybegynder
02. april 2008 - 17:25 #12
Okay, det var da egentlig noget nemmere end det bøvlede JS! =)
Jeg tror jeg vælge at bruge det i stedet, så I må gerne begge lægge et
svar..
Avatar billede softspot Forsker
02. april 2008 - 17:29 #13
Det er vist mig der mangler - så det kommer her :)
Avatar billede softspot Forsker
03. april 2008 - 11:21 #14
Tak for point :)
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