Avatar billede freud Nybegynder
18. september 2004 - 22:44 Der er 6 kommentarer og
1 løsning

kalender ændre id til dato

Har brugt denne kode http://eksperten.dk/spm/537682 til at lave en eventkalender efter.

Her er koden:

calendar.asp - viser kalenderen

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
dtmDate = Request.QueryString("date")
dtmToday = Date

If dtmDate = "" Then
  dtmDate = Date
Else
  dtmDate = CDate(dtmDate)
End if

intYear = Year(dtmDate)
strMonth = MonthName(Month(dtmDate))
intDayOfMonth = Day(dtmDate)
dtmFirstDate = DateAdd("d", (-intDayOfMonth)+1, dtmDate)
intFirstDay = Weekday(dtmFirstDate, vbMonday)

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("wml.mdb")
%>

<script language="JavaScript">
function visevent(id) {
  var Url = "vis.asp?id="+id;
  var WindowWidth = 500;
  var WindowHeight = 400;
  var WindowTop = (screen.availHeight/2) - (WindowHeight/2);
  var WindowLeft = (screen.availWidth/2) - (WindowWidth/2);
  var WindowProps = 'toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable,width='+WindowWidth+',height='+WindowHeight+',left='+WindowLeft+',top='+WindowTop+',screenx='+WindowLeft+',screeny='+WindowTop;
  PoppedWindow = window.open(Url,"PoppedWindow",WindowProps);
}
</script>


<table cellspacing="0" cellpadding="2" border="0" valign="top"
style="border: 1px solid rgb(0,0,0)">
<tr>
<td colspan="7" align="center" valign="middle" class="top"><%=strMonth%>&nbsp;<%=intYear%></td>
</tr>
<tr>
<td align="center">Man</td>
<td align="center">Tir</td>
<td align="center">Ons</td>
<td align="center">Tor</td>
<td align="center">Fre</td>
<td align="center">Lør</td>
<td align="center">Søn</td>
</tr>
<%
For y = 1 to 6
  If blnLast <> True Then
    Response.Write "<tr>"
    For x = 1 to 7
      Response.Write "<td align=center><font face=verdana size=2>"
      intLoopDay = intLoopDay + 1
      If intLoopDay >= intFirstDay Then
        dtmCurDate = DateAdd("d", intLoopDay-intFirstDay, dtmFirstDate)
        If Month(dtmCurDate) = Month(dtmFirstDate) Then
          If dtmCurDate = dtmToday Then
            Response.Write " "
          End If
          sDato = Year(dtmCurDate) & "-" & month(dtmCurDate) & "-" & day(dtmCurDate)
          SQL = "select * from kalender where dato = #" & sDato & "#"
          set rs = conn.Execute(SQL)
        if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & rs("id") & "');"">"
          Response.Write Day(dtmCurDate)
          if not rs.EOF then Response.Write "</a>"
          Response.Write "</td>"
          blnLast = False
        Else
          Response.Write "-</td>"
          blnLast = True
        End If
      Else
        Response.Write "-</td>"
        blnLast = True
      End if
    Next
  End If
Next
Response.Write "</td></tr>"
%>

<tr>
<td  colspan="3" class="bar"><b>
<a href="calender.asp?date=<%=DateAdd("m",-1,dtmFirstDate)%>">Forrige</a></b></td>
<td class="bar">&nbsp;</td>
<td class="bar" colspan="3" align="right"><b>
<a href="calender.asp?date=<%=DateAdd("m",1,dtmFirstDate)%>">Næste</a></b></td>
</tr>
</table>
</body>
</html>


vis.asp - viser indhold af valgt event

<html>
<head>
<title></title>
</head>
<%
id = replace(Request.QueryString("id"),"'","")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("wml.mdb")

SQL = "select * from kalender where id = " & id
set rs = Conn.Execute(SQL)

if not rs.EOF then
  Response.Write "<center><table width=""75%"" cellpadding=""3"">"

  Response.Write "<tr><td>Dato :</td><td>" & rs("dato") & "</td></tr>"
  Response.Write "<tr><td>Tybe :</td><td>" & rs("tybe") & "</td></tr>"
  Response.Write "<tr><td>Overskrift :</td><td>" & rs("overskrift") & "</td></tr>"
  Response.Write "<tr><td valign=""top"">Information :</td><td>" & rs("information") & "</td></tr>"

  Response.Write "</table></center>"
 
else
  Response.Write "<center>Ingen eventes i dag</center>"

end if
%>
</body>
</html>


har følgerne felter i min db: overskrift, dato, tybe , information


Det jeg gerne vil have lavet er:

- man udtrækker dato og ikke id ved at klikke på linket i
kalenderen.

- ved at køre musen hen over linket i kalenderen, vises overskrifterne på den eller de events der er den pågældende dag
Avatar billede eagleeye Praktikant
18. september 2004 - 23:08 #1
Så prøv at rette dette:

          sDato = Year(dtmCurDate) & "-" & month(dtmCurDate) & "-" & day(dtmCurDate)
          SQL = "select * from kalender where dato = #" & sDato & "#"
          set rs = conn.Execute(SQL)
        if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & rs("id") & "');"">"


Til dette så det er datoen den overføre, samt sætter en alt tag på linket:

          sDato = Year(dtmCurDate) & "-" & month(dtmCurDate) & "-" & day(dtmCurDate)
          SQL = "select * from kalender where dato = #" & sDato & "#"
          set rs = conn.Execute(SQL)
          str=""
          do while not rs.EOF
            str=str & rs("overskrift") & vbCrLf
            rs.Movenext
          loop
        if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & sDato & "');"" alt=""" & str & """>"



Så skal SQL sætningen på vis.asp siden også rettes fra:
SQL = "select * from kalender where id = " & id

Til dette så den bruger dato kolonnen:
SQL = "select * from kalender where dato = #" & id & "#"



Hvis vis.asp  skal vise alle events skal dette rettes:
if not rs.EOF then
  Response.Write "<center><table width=""75%"" cellpadding=""3"">"

  Response.Write "<tr><td>Dato :</td><td>" & rs("dato") & "</td></tr>"
  Response.Write "<tr><td>Tybe :</td><td>" & rs("tybe") & "</td></tr>"
  Response.Write "<tr><td>Overskrift :</td><td>" & rs("overskrift") & "</td></tr>"
  Response.Write "<tr><td valign=""top"">Information :</td><td>" & rs("information") & "</td></tr>"

  Response.Write "</table></center>"
 
else
  Response.Write "<center>Ingen eventes i dag</center>"

end if


Så det er et loop omkring:

if not rs.EOF then
do while not rs.EOF
  Response.Write "<center><table width=""75%"" cellpadding=""3"">"

  Response.Write "<tr><td>Dato :</td><td>" & rs("dato") & "</td></tr>"
  Response.Write "<tr><td>Tybe :</td><td>" & rs("tybe") & "</td></tr>"
  Response.Write "<tr><td>Overskrift :</td><td>" & rs("overskrift") & "</td></tr>"
  Response.Write "<tr><td valign=""top"">Information :</td><td>" & rs("information") & "</td></tr>"

  Response.Write "</table></center>"
  rs.Movenext
loop
else
  Response.Write "<center>Ingen eventes i dag</center>"

end if
Avatar billede eagleeye Praktikant
18. september 2004 - 23:19 #2
Angående linket med datoen, så skal det nok mere være title end alt:

        if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & sDato & "');"" title=""" & str & """>"
Avatar billede freud Nybegynder
18. september 2004 - 23:25 #3
- eagleeye

når den kode tilføjes, forsvinder linket :-(

          sDato = Year(dtmCurDate) & "-" & month(dtmCurDate) & "-" & day(dtmCurDate)
          SQL = "select * from kalender where dato = #" & sDato & "#"
          set rs = conn.Execute(SQL)
          str=""
          do while not rs.EOF
            str=str & rs("overskrift") & vbCrLf
            rs.Movenext
          loop
        if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & sDato & "');"" alt=""" & str & """>"
Avatar billede freud Nybegynder
18. september 2004 - 23:28 #4
med denne kode:

        sDato = Year(dtmCurDate) & "-" & month(dtmCurDate) & "-" & day(dtmCurDate)
          SQL = "select * from kalender where dato = #" & sDato & "#"
          set rs = conn.Execute(SQL)
        if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & rs("id") & "');"">"

vises linket, MEN der er ingen link tekst når musen føres over og får følgende fejl

når jeg trykker på linket:

Fejltype:
Microsoft JET Database Engine (0x80040E07)
Der er en syntaksfejl i datoen i forespørgselsudtrykket "dato = #2#".
/projekter/svendborg_vandrehjem/vis.asp, line 11
Avatar billede eagleeye Praktikant
18. september 2004 - 23:30 #5
Ja så det stadig ID'et som overføres og ikke datoen.

Prøv at rette denne linje:

        if str<>"" then Response.Write "<a href=""#"" onclick=""visevent('" & sDato & "');"" title=""" & str & """>"


Samt denne linje:

        if not rs.EOF then Response.Write "</a>"

til:

        if str<>"" then Response.Write "</a>"
Avatar billede freud Nybegynder
18. september 2004 - 23:32 #6
se bort fra det her:

vises linket, MEN der er ingen link tekst når musen føres over og får følgende fejl

når jeg trykker på linket:

Fejltype:
Microsoft JET Database Engine (0x80040E07)
Der er en syntaksfejl i datoen i forespørgselsudtrykket "dato = #2#".
/projekter/svendborg_vandrehjem/vis.asp, line 11

har fundet fejlen............ dette rs("id") skal jo selvfølge ændres til rs("dato")
Avatar billede freud Nybegynder
18. september 2004 - 23:37 #7
- eagleeye

Kanon kanon , nu virker det bare............ du er sku for sej :-)
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