Ciao a tutti,
per questioni di tempo ho dovuto scaricare un calendario in asp già compilato, in pratica lo script così com'è permette di visualizzare un calendario nella pagina desiderata.
Quello che mi occorre è un calendario con i giorni cliccabili che fanno accedere ad una pagina che stampa a video gli eventi relativi a quel determinato giorno.
Sono riuscito nell'intento linkando i giorni, una volta cliccato su un giorno qualsiasi si passa l'id data_sel, nella pagina di visualizzazione faccio una select per data_sel. Funziona tutto.
Quello che vorrei aggiungere è uno sfondo sui giorni in base all'evento che contengono, esempio:
se il giorno 15/09/2009 contiene un evento sportivo, il background nel giorno 15 sarà giallo e così via.
Nel database access che ho creato ho inserito un campo numerico categoria_eventi, in base al numero corrisponderà una categoria con un colore.
Inizio con il postare il codice della pagina del calendario e quella di risposta:
calendario.asp
risposta.aspCodice PHP:<%
Session.LCID = 1040
' se non passiamo nessun valore parte dalla data odierna
If Request("data") ="" then
data = Date()
else
data = CDate(Request("data"))
end if
mese = Month(data)
anno = Year(data)
' conta il numero di giorni in un mese
function giornidelmese(mese, anno)
DataInizio = CDate("01/" & mese & "/" & anno)
DataFine = DateAdd("m", 1, DataInizio)
giornidelmese = DateDiff("d", DataInizio, DataFine)
end function
%>
<table cellpadding="0" cellspacing="0" width="210">
<tr>
<td align="center">D</td><td align="center">L</td><td align="center">M</td><td align="center">M</td>
<td align="center">G</td><td align="center">V</td><td align="center">S</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="210">
<tr>
<td>[url="calendario.asp?data=<%=DateAdd("]">Indietro[/url]</td>
<td colspan="5" align="center"><%=MonthName(Month(data)) & " " & Year(data)%></td>
<td align="right">[url="calendario.asp?data=<%=DateAdd("]">Avanti[/url]</td>
</tr>
<%
DataInizio = CDate("01/" & mese & "/" & anno)
' saltiamo primi giorni della settimana
for i = 1 to WeekDay(DataInizio)-1
if i = 1 then Response.Write "<tr>"
Response.write "<td> </td>"
next
'mostriamo il calendario e linkiamo ogni giorno
for i = 1 to giornidelmese(mese,anno)
data = Cdate(( i & "/" & mese & "/" & anno))
if WeekDay(data) = 1 then Response.Write "<tr>"
Response.Write("<td align=""center"">[url='risposta.asp?data=" & Server.UrlEncode(data) & "']" & i & "[/url]</td>")
if WeekDay(data) = 7 then Response.Write "</tr>"
next
' saltiamo primi giorni della settimana
for j = WeekDay(Data)+1 to 7
Response.write "<td> </td>"
if j mod 7 = 0 then Response.Write "</tr>" : exit for
next
%>
</table>
il calendario verrebbe visualizzato in questo modo:Codice PHP:<%
data_sel = Request("data")
if data_sel <> "" then
dim strCode
strCode="innovatel"
dim intVolta
intVolta="0"
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("mdb-database/db.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
Set rs = Server.CreateObject("ADODB.Recordset")
titolo_appuntamento = request.form("titolo_appuntamento")
data_sel = request("data")
sql = "SELECT * FROM calendario WHERE data='"&data_sel&"'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
'se la tbl del db è vuota allora...
if rs.eof then
sw_eof="1"
end if
if sw_eof="1" then
%>
Non ci sono eventi</p>
<%
end if
'se è presente almeno un evento lo stampo..
while not rs.eof
%>
<%=rs("titolo_appuntamento")%>|<%=rs("data")%>
<%
rs.movenext
wend
end if
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
avrei bisogno anche che al posto di "indietro" e "avanti" si visualizzasse il nome del mese precedente e viceversa. Grazie in anticipo ragazzi![]()


Rispondi quotando