Avatar billede riishoj Nybegynder
19. december 2004 - 20:42 Der er 21 kommentarer og
1 løsning

if-elseif virker ikke

Kan nogen fortælle mig hvorfor dette her ikke virker? Ligegyldig om uge<xweek eller uge>xweek, så får jeg returneret det samme årstal, nemlig 2005.

<%
uge = request.querystring("uge")
aar = request.querystring("aar")


xweek=DatePart("ww",date())
naar = aar + 1

if Request("mode") = "change" AND uge<xweek then

Response.Redirect "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & naar & "" 

elseif Request("mode") = "change" AND uge>xweek then

Response.Redirect "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & aar & ""


end if
%>
Avatar billede erikjacobsen Ekspert
19. december 2004 - 20:50 #1
if Request("mode") = "change" AND cint(uge)<xweek then

...måske
Avatar billede erikjacobsen Ekspert
19. december 2004 - 20:50 #2
Bemærk iøvrigt at den indbyggede "ww" regner forkert omkring uge 53.
Avatar billede riishoj Nybegynder
19. december 2004 - 20:57 #3
Det giver desværre samme resultat.
Avatar billede erikjacobsen Ekspert
19. december 2004 - 21:05 #4
Og du har gjort det to steder?
Avatar billede riishoj Nybegynder
19. december 2004 - 21:08 #5
Ja,ja
Avatar billede erikjacobsen Ekspert
19. december 2004 - 21:21 #6
Det ser ud til at virke hos mig:

http://asp.jacobsen.biz/cint6.asp?uge=53&mode=change&aar=2004 giver
skema.asp?reservation=&uge=53&aar=2004

og

http://asp.jacobsen.biz/cint6.asp?uge=51&mode=change&aar=2004
skema.asp?reservation=&uge=51&aar=2005

med dette lidt modificerede script. Tror du serveren har registreret din ændring??

<%
uge = request.querystring("uge")
aar = request.querystring("aar")

response.write uge & "<br>"

xweek=DatePart("ww",date())
naar = aar + 1

if Request("mode") = "change" AND cint(uge)<xweek then

Response.Write "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & naar 

elseif Request("mode") = "change" AND cint(uge)>xweek then

Response.Write "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & aar


end if
%>
Avatar billede riishoj Nybegynder
19. december 2004 - 21:39 #7
Ja, jeg tester på min PWS. Jeg smider lige hele scriptet scriptet op. Har en lumsk mistanke til aar = request.querystring("aar"). Se evt. formen i slutningen af scriptet.





<%Session.LCID = &H0407%>
<%
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.Buffer = "true"

'hvis session("userID") er tom så er man ikke logget ind.
if session("userID") = "" then
  Response.Redirect"../hovedlogin/loginform.asp"
Else
end if

%>

<%
uge = request.querystring("uge")
aar = request.querystring("aar")


xweek=DatePart("ww",date())
naar = aar - 1
if Request("mode") = "change" AND cint(uge)<xweek then

Response.Redirect "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & naar & "" 

elseif Request("mode") = "change" AND cint(uge)>xweek then

Response.Redirect "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & aar & ""


end if
%>
<html>

<head>
<title>skema</title>
<LINK REL="StyleSheet"
HREF="../style.css"
TYPE="text/css">
<SCRIPT LANGUAGE="JavaScript">
<!-- Original:  Tom Khoury (twaks@yahoo.com) -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function placeFocus() {
if (document.forms.length > 0) {
var field = document.forms[0];
for (i = 0; i < field.length; i++) {
if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s")) {
document.forms[0].elements[i].focus();
break;
        }
      }
  }
}
//  End -->
</script>
</head>

<body OnLoad="placeFocus()">

<p align="center"><br>
<table border=" solid 1px" width="100%" cellspacing="0" cellpadding="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#FFFFFF"  >
  <tr>
    <td width="128%" colspan="6" bgcolor="#999999">
      <table border="0" width="100%">
        <tr>
          <td width="25%" valign="bottom" bgcolor="#999999"><b><font face="Verdana" color="red" size="4">
          <%response.write Request.Querystring("reservation")%>

          </font></b></td>
          <%
          Function UgeTilDato(aar,uge,dag)
  januar1 = DateSerial(aar, 1, 1)
  ugedagjan1 = Weekday(januar1, vbMonday)
  if ugedagjan1 <= 4 then
      ' 1. januar er i uge 1
      mandaguge1 = DateAdd("d", -ugedagjan1+1, januar1)
  else
      ' 1. januar er i sidste uge foregående år
      mandaguge1 = DateAdd("d", 7-ugedagjan1+1, januar1)
  end if

  mandagugex = DateAdd("ww", uge-1, mandaguge1)
  xdagugex = DateAdd("d", dag-1, mandagugex)
  UgeTilDato = xdagugex
End Function         

         
If request.querystring("uge") <> "" Then
  uge = request.querystring("uge")
 
Else
  uge = DatePart("ww",date())
End if
  If request.querystring("aar") <> "" Then
  aar = request.querystring("aar")
Else

  aar = Year(Date)
End If

fuge = uge - 1
faar = aar
If fuge < 1 then
  fuge = 52
  faar = faar - 1
End If

Response.Write"<td width=20% align=left valign=bottom><font color=white face=verdana size=3><A class='speciel2' HREF='skema.asp?reservation=" & request.querystring("reservation") & "&uge=" & fuge & "&aar=" & faar & "'><--Forrige uge </A></font></td>"
%>

          <td width="20%" align="left" bgcolor="#999999"><font color="#ffffff"><b><font face="Verdana" size="4">Uge</font><font face="Verdana" size="3">&nbsp</font></b>
            </font>
                       
            <%


If Request.Querystring("uge") <> "" Then
      uge = Request.Querystring("uge")
    Else
      uge = DatePart("ww",date())
    End If
   
    Response.Write "<font color=#ffffff face=verdana size=5>"
    Response.Write uge
    %>
</td>
<%

If request.querystring("uge") <> "" Then
  uge = request.querystring("uge")
Else
  uge = DatePart("ww",date())
End if
  If request.querystring("aar") <> "" Then
  aar = request.querystring("aar")
Else
aar = Year(Date)
End If

nuge = uge + 1
naar = aar
If nuge > 52 then
  nuge = 1
  naar = naar + 1
End If
Response.Write"<td width=35% align=left valign=bottom><font color=white face=verdana size=3><A class='speciel2' HREF='skema.asp?reservation=" & request.querystring("reservation") & "&uge=" & nuge & "&aar=" & naar & "'>Næste uge--></A></font></td>"
%>

        </tr>
     
      </table>
     
  <tr>
    <td width="8%" bgcolor="#999999">&nbsp;</td>
    <td width="18%" bgcolor="#999999">
      <p align="center"><b><font color="#FFFFFF" face="Verdana" size="2">Mandag</font></b><font color="#FFFFFF" face="Verdana" size="2"><br>
            <% Response.Write FormatDateTime(UgeTilDato(aar, uge, 1), vbShortDate) %></font></td>
    <td width="18%" bgcolor="#999999">
      <p align="center"><b><font color="#FFFFFF" face="Verdana" size="2">Tirsdag</font></b><font color="#FFFFFF" face="Verdana" size="2"><br>
            <% Response.Write FormatDateTime(UgeTilDato(aar, uge, 2), vbShortDate) %></font></td>
    <td width="19%" bgcolor="#999999">
      <p align="center"><b><font color="#FFFFFF" face="Verdana" size="2">Onsdag</font></b><font color="#FFFFFF" face="Verdana" size="2"><br>
              <% Response.Write FormatDateTime(UgeTilDato(aar, uge, 3), vbShortDate) %></font></td>
    <td width="19%" bgcolor="#999999">
      <p align="center"><b><font color="#FFFFFF" face="Verdana" size="2">Torsdag</font></b><font color="#FFFFFF" face="Verdana" size="2"><br>

              <% Response.Write FormatDateTime(UgeTilDato(aar, uge, 4), vbShortDate) %></font></td>
    <td width="19%" bgcolor="#999999">
      <p align="center"><b><font color="#FFFFFF" face="Verdana" size="2">Fredag</font></b><font color="#FFFFFF" face="Verdana" size="2"><br>

              <% Response.Write FormatDateTime(UgeTilDato(aar, uge, 5), vbShortDate) %></font></td>
 
 
  </tr>

<!--#include virtual="/skoleweb/conn.asp"-->


<%


    lektion = Request.Querystring("lektion")
    dag = Request.Querystring("dag")
    reservation = Request.Querystring("reservation")
 

   
    dim SQLdag(7)
SQLdag(1) = "Mandag"
SQLdag(2) = "Tirsdag"
SQLdag(3) = "Onsdag"
SQLdag(4) = "Torsdag"
SQLdag(5) = "Fredag"
SQLdag(6) = "Lørdag"
SQLdag(7) = "Søndag"

dim linkdag(7)
linkdag(1) = "mandag"
linkdag(2) = "tirsdag"
linkdag(3) = "onsdag"
linkdag(4) = "torsdag"
linkdag(5) = "fredag"
linkdag(6) = "lørdag"
linkdag(7) = "søndag"


for lektion = 1 to 8

  Response.Write "<tr>"
    Response.Write "<td width=8% height=40 align=center bgcolor=#999999><font face=Verdana size=2 color=#ffffff>" & lektion & ". time</font></td>"


  for dag = 1 to 5
 
  datoStr = UgeTilDato(aar, uge, 1)
datoStr = Month(datoStr) & "-" & Day(datoStr) & "-" & Right(Year(datoStr),2)

%>
<!--#include virtual="/skoleweb/sql_blokering.asp"-->
<%

set rs = Conn.Execute(strSQL)

if not (rs.EOF or rs.BOF) then
Response.write"<td border=1  bordercolor=#0000FF bordercolordark=#FFFFFF bordercolorlight=#0000F width=18% height=40 bgcolor=red><font face=Verdana size=1 color=#FFFFFF><p align=center>"&rs("tekst")&"</font></td>" 
 
Else
      'generer data og HTML kode for (dag,lektion)
      strSQL = "SELECT initialer,klasse FROM reserver WHERE reservation='" & request.querystring("reservation") & "' AND dag='" & SQLdag(dag) & "' AND lektion='" & lektion & "' AND uge='" & uge & "' AND aar='" & aar & "'"
set rs = Conn.Execute(strSQL)
if rs.EOF or rs.BOF then
Response.Write"<td width=18% height=40 bgcolor=#F0F8F8><font color=#ffffff><A HREF='reserver_form.asp?aar=" & aar & "&uge=" & uge & "&dag=" & linkdag(dag) & "&lektion=" & lektion & "&reservation=" & reservation &"'><img border=0 src='../images/greenball.gif' alt='Ledig'></font></td>"

  Else

    Response.Write"<td width=18% height=40 bgcolor=#F0F8F8><b><font color=#ffffff face='verdana' size='2'><img src='../images/redball.gif' alt='Optaget'><img src='../images/blank2.gif'><A class='speciel' HREF='vis_reservation.asp?reservation=" &reservation & "&lektion=" & lektion & "&dag=" & linkdag(dag) & "&uge=" & uge &"'>"&rs("initialer")&"</A></font></b></td>"

    rs.MoveNext
   
    End if
    End if
  next
  Response.Write "</tr>"
next
 

    Conn.Close
    Set Conn = Nothing
%>   
  </table>


  <form action="skema.asp?reservation=<%=reservation%>&aar=<%=aar%>" method="post">
<table border="0" width="100%">
  <tr>
    <td width="33%">
      <p align="center"><font face="verdana" size="2" class="speciel">
   
     
<% Response.Write "<A class='speciel3' HREF='skema_2.asp?reservation=" & request.querystring("reservation") & "&uge=" & uge & "&aar=" & aar & "'>Skema for hele dagen</A>" %>    </font></td>


    <td width="33%">
      <p align="center"><font face="Verdana" size="2">Gå til uge</font> <input type="text" name="uge" size="3"><input type="submit" value="Send" name="B1"></td>
    <td width="34%">
      <p align="center"><font face=verdana size=2><A class='speciel3' HREF='../default.asp'>Tilbage
      til forsiden</A></font></td>
  </tr>
</table>
<input type="hidden" name="reser" value="<%=reservation%>">
<input type="hidden" name="aar" value="<%=aar%>">
<input type="hidden" name="mode" value="change">
</form>

 
</body>
</html>
Avatar billede erikjacobsen Ekspert
19. december 2004 - 21:51 #8
Jeg kan ikke på det du viser her se hvad der er hvad. Men der er da et par ting,
der springer i øjnene.

1) Du skal forhåbentlig ikke bruge det til noget i den virkelige verden, for
  så skal du i hvert fald lære mere om kalendersystemet. Der findes sommetider
  en uge 53, som du ikke tager højde for, og Microsoft og ASP har en fejl omkring
  uge 53 man skal tage højde for.
2) Du sender både aar med som POST og GET variabel - det tyder på du ikke ved hvad du gør
3) Lav nogle testudskrifter, så du kan se hvad du får af data, og hvilke beregninger du laver, eller tror du laver...
Avatar billede riishoj Nybegynder
19. december 2004 - 22:02 #9
1) Jeg er klar over problemet med uge 53. Det har i dette tilfælde ingen praktisk betydning, da jeg ikke har brug for denne uge!
2) Til det sidste har du ganske ret. Mit script er stykket sammen af bits and pieces mostly. Vær rar og vis mig hvor jeg sender år som GET variabel.
Avatar billede erikjacobsen Ekspert
19. december 2004 - 22:09 #10
2) action="skema.asp?reservation=<%=reservation%>&aar=<%=aar%>"

1) Jah, *g*, lad os så håbe det ....

Husk 3)
Avatar billede riishoj Nybegynder
19. december 2004 - 22:34 #11
Jamen så tak for hjælpen da. Send et svar. Er der et sted jeg kan læse noget om uge 53 problemet?
Avatar billede erikjacobsen Ekspert
19. december 2004 - 22:36 #12
Ja, prøv at søge på eksperten.dk
Jeg samler slet ikke på point, tak.
Avatar billede riishoj Nybegynder
19. december 2004 - 22:47 #13
Har lig e prøvet lidt 3)

Hvis jeg prøver det her

<%
uge = request.querystring("uge")

aar = Year(Date)
response.write aar
xweek=DatePart("ww",date())
naar = aar + 1
if Request("mode") = "change" AND cint(uge)<xweek then

Response.write "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & naar & "" 

elseif Request("mode") = "change" AND cint(uge)>xweek then

Response.write "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & aar & ""


end if
%>

Får jeg udskrevet det her

2004skema.asp?reservation=Edb&uge=52&aar=2005


Hvorfor er aar ikke 2004 når uge er 52?
Avatar billede netro Nybegynder
20. december 2004 - 00:26 #14
Avatar billede erikjacobsen Ekspert
20. december 2004 - 00:31 #15
Hvilken uge er vi i, ifølge din maskine?
Avatar billede riishoj Nybegynder
20. december 2004 - 08:02 #16
I det nævnte tilfælde, har jeg submittet uge 52 via formen i bunden af scriptet. Jeg havde sat kalenderen 1 uge tilbage, så den altså var i uge 51. Da uge=52 er større end xweek=51 skulle jeg vel få udskrevet aar=2004.
Avatar billede erikjacobsen Ekspert
20. december 2004 - 14:47 #17
Sådan burde det virke. Har du udskrevet xweek for at være sikker på din beregning?
Avatar billede riishoj Nybegynder
20. december 2004 - 16:19 #18
Hvis jeg sætter kalenderen på min pc til uge 47, altså xweek=47 og submitter uge 50 med formen og prøver følgende

<%
uge = request.querystring("uge")
response.write uge
aar = Year(Date)
response.write aar
xweek=DatePart("ww",date())
response.write xweek
naar = aar + 1
response.write naar
if Request("mode") = "change" AND cint(uge)<xweek then

Response.write "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & naar & "" 

elseif Request("mode") = "change" AND cint(uge)>xweek then

Response.write "skema.asp?reservation=" & request("reser") & "&uge=" & Request("uge") & "&aar=" & aar & ""


end if
%>

så får jeg dette her udskrevet

2004472005skema.asp?reservation=Edb&uge=50&aar=2005

Jeg kan altså se, at aar=2004 og naar=2005, xweek=47. Hvorfor dælen får jeg så også udskrevet aar=2005?
Avatar billede erikjacobsen Ekspert
20. december 2004 - 21:12 #19
Du får jo ikke udskrevet ugen allerførst. Du har sikkert fjernet den som querystring, o g skal

uge = request.form("uge")
Avatar billede riishoj Nybegynder
20. december 2004 - 21:50 #20
Jamen du har jo helt ret. Jeg skulle selvfølgelig have uge = request.form("uge")
Nu virker det efter hensigten, så send et svar, så du kan få point. Tak for hjælpen, - jeg har lært en del af dette spm. Btw, hvorfor er livet for kort til asp?
Avatar billede erikjacobsen Ekspert
20. december 2004 - 22:30 #21
ASP er en teknologi fra sidste årtusind, stort set uden de struktureringsmuligheder,
man anvender i dag til opdeling af en problemstilling og løsning i komponenter.
Systemer baseret på ASP er ofte en uoverskuelig sammenblanding af mange ting.
Microsoft har også totalt kasseret ASP til fordel for ASP.NET, der tilbyder
gode struktureringsmuligheder. Mange mennesker spilder deres tid (og sommetider
desværre også deres arbejdsgivers tid) på disse uhensigtsmæssigheder i ASP
(gammeldags ASP, eller classic ASP...), og mit lille motto er blot et lille prik
til at overveje om man nu også gør det rigtige. Men det er der jo ikke plads til at
skrive i et minisite ;))

Tak, men jeg samler slet ikke på point. Svar selv, accepter eget svar.
Avatar billede riishoj Nybegynder
20. december 2004 - 22:49 #22
OK, hvis du insisterer. Tak og glædelig jul!
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