Avatar billede remo27 Nybegynder
08. september 2004 - 20:15 Der er 22 kommentarer og
1 løsning

Hjem vil hælpe med at lave et kalender system

jeg sidder fast i mit lille webprojekt.

Jeg skal have lavet en kalender men en data-udtræk funktion og popup funkttion.

klik på http://remo.lir.dk/ny_wml/ og vælg kalender.

jeg forstiller mig en formular side hvor man indtaster en overskrift - dato - en dropdown hvor man vælger om det skal være øveaften eller arragement og en tekst boks, hvor man skriver en information.

Hvem kan hjælpe mig, da min ASP evner ikke rækker så lagt at jeg selv kan kode det.


/Remo
Avatar billede eagleeye Praktikant
08. september 2004 - 21:14 #1
Du kan lave noget som dette:

<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "din connection string her"

  overskrift = replace(Request.Form("overskrift"),"'","''")
  dato = replace(Request.Form("dato"),"'","")
  type = replace(Request.Form("type"),"'","''")
  info = replace(Request.Form("information"),"'","''")
  if overskrift <> "" and dato <> "" and type <> "" and info <> "" then
    sDato = Year(dato) & "-" & month(dato) & "-" & day(dato)
    sql = "insert into TabelNavn (overskrift, dato, [type], information) values ("
    sql = sql & "'" & overskrift & "', "
    sql = sql & "#" & sDato & "#, "
    sql = sql & "'" & type & "', "
    sql = sql & "'" & info & "' "
    sql = sql & ")"

    Conn.Execute(sql)
  end if
  conn.Close
  set conn = nothing
  Response.Redirect Request.ServerVariables("SCRIPT_NAME")
end if %>
<html>
<body>
<center><table>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<tr><td>Overskrift</td><td><input type="text" name="overskrift"></td></tr>
<tr><td>Dato</td><td><input type="text" name="dato"></td></tr>
<tr><td>Type</td><td><select name="type">
<option value="øveaften">Øveaften</option>
<option value="arragement">Arragement</option>
</select></td></tr>
<tr><td>Information</td><td><textare name="information" rows="9" cols="45"></textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="Send" value="Send"></td></tr>
</form>
</table>
</center>
</body>
</html>
Avatar billede remo27 Nybegynder
10. september 2004 - 07:26 #2
Eagleeye>> Jeg er på nettet i aften , fra ved 20:30 tiden, jeg skriver til dig her i eksperten, hvis der kommer flere problemos.

/Remo
Avatar billede remo27 Nybegynder
10. september 2004 - 19:50 #3
hvad skriver jeg her:

Conn.Open "din connection string her"  min database hedder wml.mdb
Avatar billede eagleeye Praktikant
10. september 2004 - 19:54 #4
Et eksempel. Det stadig lidt afhængigt af hvor database filen ligger i forhold til ASP filen:

Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("wml.mdb")
Avatar billede remo27 Nybegynder
10. september 2004 - 20:43 #5
æhhh, jeg har ikke formuleret mig ordenligt sorry, men det var kalender delen, jeg ikke har styr på, ikke formular siden, men den er ganske brugbar, det er dette kaleder script, som jeg gerne ville have flette sammen med db delen.

calender.asp

<%
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)
%>


<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
          Response.Write Day(dtmCurDate)
          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="kalender.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="kalender.asp?date=<%=DateAdd("m",1,dtmFirstDate)%>">Næste</a></b></td>
</tr>
</table>
Avatar billede eagleeye Praktikant
10. september 2004 - 21:10 #6
ok, hvordan er datoen så gemt i databaen for event?
Avatar billede remo27 Nybegynder
10. september 2004 - 21:54 #7
jeg har  [id autonummerering] [overskrift - tekst] [dato - dato og klokkeslet] [tybe - teskt] [information - notat]  tabellen i databasen wml.mdb har jeg kaldt kalender
Avatar billede eagleeye Praktikant
10. september 2004 - 22:33 #8
Du kan gøre sådan her i calender.asp


<%
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="kalender.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="kalender.asp?date=<%=DateAdd("m",1,dtmFirstDate)%>">Næste</a></b></td>
</tr>
</table>
Avatar billede eagleeye Praktikant
10. september 2004 - 22:33 #9
Lav en ny fil som hedder vis.asp

og den skal ligge samme med den anden fil og havde dette kode:

<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>
Avatar billede remo27 Nybegynder
10. september 2004 - 22:47 #10
hmm denne fejl kommer

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409)
Strengkonstanten er uafsluttet
/web2004/wml/calender.asp, line 63, column 91
if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & rs("id") & "');"">
------------------------------------------------------------------------------------------^



linie 63:  if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & rs("id") & "');"">
Avatar billede eagleeye Praktikant
10. september 2004 - 22:49 #11
hov den er ikke helt afsluttet korrekt prøv lige sådan her:

if not rs.EOF then Response.Write "<a href=""#"" onclick=""visevent('" & rs("id") & "');"">"
Avatar billede remo27 Nybegynder
10. september 2004 - 23:01 #12
jeg har disse 2 filer oeve.asp og arran.asp, de laver en måneds udtræk fra kalender i database.  koden ser således ud.

<!-- #include file="databaseforbindelse.asp" -->


<table border="0" cellpadding="0" cellspacing="0"  width="100%" >
  <%Set Query = Conn.Execute("SELECT * FROM kalender WHERE tybe='arragement' AND Month(dato)=Month(Date()) AND Year(dato)=Year(Date()) order by dato")
if Query.EOF then %>
  <tr>
    <td width="100%" class="nyhed" align="center" colspan="2">Der ingen arrangementer i denne måned.</td>
    <%
end if
%>
<% Do until Query.EOF %>

    <td width="40%" class="nyhed"><%=Query("dato")%>&nbsp;</td>
    <td width="60%" class="nyhed"><a href="default.asp?emne=arran&id=<%=Query("id")%>"><%=left(Query("overskrift"),20)%>...</a></td>
  </tr>
  <%Query.MoveNext%>
<%loop%>
         
</table>
<% conn.close
  Set Conn = Nothing %>

WHERE tybe='arragement' denne linie er forskellig fra oeve.asp og arran.asp

kan man lave såleds at når man klikker på enten en måned frem eller tilbage på kalenderen, så skifter den også udtrækket her, så det passer med den aktuelle måned
Avatar billede eagleeye Praktikant
10. september 2004 - 23:10 #13
De kræver de får måneden fra kalender.asp filen, så skal de includes fra calender.asp filen, så de kan se hvilken måned der er valgt.
Avatar billede eagleeye Praktikant
10. september 2004 - 23:20 #14
Eller også skal koden koden for arran.asp go oeve.asp ligges ind i en ifram så kan man fra calder.asp opdater iframen med den valgte måned.
Avatar billede remo27 Nybegynder
10. september 2004 - 23:39 #15
jeg har lavet en opstilling på http://remo.lir.dk/ny_wml/  - kalender.

Hvad vil være smartes at gøre så man kan få øveaften og arrangemet til at følges ad med kalenderen.  Det med at includere dem i calender asp filen lyder som en god ide, men hvordan ??? bare en <!-- #include file="" --> eller skal der mere kode til
Avatar billede eagleeye Praktikant
10. september 2004 - 23:45 #16
Ja du ska bare huske at includen først skal være efter variablen dtmDate bliver sat.

Så kan du rette den SQL som er i hver fil der finder events:
<%Set Query = Conn.Execute("SELECT * FROM kalender WHERE tybe='arragement' AND Month(dato)=Month(Date()) AND Year(dato)=Year(Date()) order by dato")

Til dette:

<%Set Query = Conn.Execute("SELECT * FROM kalender WHERE tybe='arragement' AND Month(dato)=" & Month(dtmDate ) & " AND Year(dato)=" & Year(dtmDate) & " order by dato")

Eller det jeg kan ikke helt huske om der ikke skal ' omkring:
<%Set Query = Conn.Execute("SELECT * FROM kalender WHERE tybe='arragement' AND Month(dato)='" & Month(dtmDate ) & "' AND Year(dato)='" & Year(dtmDate) & "' order by dato")
Avatar billede remo27 Nybegynder
11. september 2004 - 00:27 #17
hvis jeg sender dig de filer som skal sættes sammen så jeg får den opstilling som jeg har nu på http://remo.lir.dk/ny_wml/ kalender.  vil du være behjælpelig med at stykke det sammen.  Jeg vil gerne bidrage med ekstra 200 point for at det kommer til at spille.  Jeg kan oprette et spørgsmål som hedder "ekstra point til eagleeye"
Avatar billede eagleeye Praktikant
11. september 2004 - 00:55 #18
Det går ikke helt, da man max må give 200 for et spørgsmål.
men du kan da prøve at sende dem til eagleeye (a) c.dk
Avatar billede remo27 Nybegynder
11. september 2004 - 01:05 #19
jeg har sendt en mail
Avatar billede eagleeye Praktikant
11. september 2004 - 01:16 #20
Jeg har modtaget den, jeg laver lige hurtigt et forsøg du kan få, men eller er jeg på vej i seng for i aften.
Avatar billede remo27 Nybegynder
11. september 2004 - 01:20 #21
okay
Avatar billede eagleeye Praktikant
12. september 2004 - 23:01 #22
her et svar ;)


her er filen vis.asp:

<html>
<head>
<title></title>
</head>
<%
dato = 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 dato = #" & dato & "#"
set rs = Conn.Execute(SQL)

if not rs.EOF then
  Response.Write "<center>Events for " & rs("dato") & "</center><br>"
else
  Response.Write "<center>Ingen eventes i dag</center>"
end if

do while not rs.EOF
  Response.Write "<center><table width=""75%"" cellpadding=""3"">"
  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><br>"
loop

%>
</body>
</html>
Avatar billede remo27 Nybegynder
12. september 2004 - 23:14 #23
Nu virker det sgu 100.000.000 mange gange tak for hjælpen
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