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

Codice 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(meseanno
  
DataInizio CDate("01/" mese "/" anno
  
DataFine DateAdd("m"1DataInizio
  
giornidelmese DateDiff("d"DataInizioDataFine
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 1 to giornidelmese(mese,anno
  
data Cdate(( "/" mese "/" anno)) 
  if 
WeekDay(data) = 1 then Response.Write "<tr>" 
  
Response.Write("<td align=""center"">[url='risposta.asp?data=" Server.UrlEncode(data) & "']" "[/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> 
risposta.asp

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 sqlconn ,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

%> 
il calendario verrebbe visualizzato in questo modo:




avrei bisogno anche che al posto di "indietro" e "avanti" si visualizzasse il nome del mese precedente e viceversa. Grazie in anticipo ragazzi