Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Pagina personale utente (parte 4)

Pagina personale per gestire i messaggi.
Pagina personale per gestire i messaggi.
Link copiato negli appunti

Abbiamo visto come estrarre i messaggi dell'utente grazie alla composizione dell'istruzione SQL e la sua interazione con la fonte dati in mySql.

Come prima operazione dobbiamo stabilire quali dati mostrare: la mia scelta è ricaduta sui seguenti dati:

  • Data d'invio messaggio
  • Mittente del messaggio
  • Titolo del messaggio

Come potete ricordare dalla stringa SQL vi è un altro campo estratto:

074: dim strSql
075: strSql = "SELECT messaggi.id_msg, messaggi.dt_invio,
messaggi.titolo, utenti.login "
076: strSql = strSql & " FROM messaggi, utenti "
077: strSql = strSql & " WHERE messaggi.id_desti='"&intUser&"' "
078: strSql = strSql & " AND messaggi.id_mitt = utenti.id_user
"
079: strSql = strSql & " LIMIT " & intPartenza &","&intMessaggi

A cosa servirà? La risposta è molto semplice. Ci permette di interagire col messaggio in quanto rappresenta in modo univoco "la corrispondenza" all'interno del nostro sistema.

Ora ripropongo il codice per mostrare a video i messaggi con i dati elencati
in precedenza:

098: if not rs.eof then
099: do while not rs.eof
100: %>
101: <tr>
102: <td> </td>
103: <td nowrap><center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><%=rs("dt_invio")%></font></center></td>

104: <td nowrap><font size="2" face="Verdana,
Arial, Helvetica, sans-serif"><%=rs("login")%></font></td>
105: <td nowrap><font size="2" face="Verdana,
Arial, Helvetica, sans-serif"><a href="javascript:;"
onClick="ApriFinestra('leggi.asp?idMsg=<%=rs("id_msg")%>');PrimoPiano ();"><%=rs("titolo")%></a></font></td>
106: <td nowrap><center><input type="checkbox"
name="pvtElimina" value="<%=rs("id_msg")%>"></center></td>
107: <td> </td>
108: </tr>
109: <%
110: rs.movenext
111: loop
112: else
113: %>
114: <tr>
115: <td colspan="5"> </td>
116: </tr>
117: <tr>
118: <td colspan="5"> <div align="center"><font
size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Nessun
messaggio.</strong></font></div></td>
119: </tr>
120: <%
121: end if
122:
123: rs.close

Dopo aver aperto il recordset, alla riga novantotto verifichiamo che non sia vuoto. Se l'esito è positivo significa che l'utente ha dei messaggi in bacheca. Alla riga centotre mostriamo la data d'invio:

103: <td nowrap><center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><%=rs("dt_invio")%></font></center></td>

Alla riga centoquattro mostro il nome utente del mittente del messaggio:

104: <td nowrap><font size="2" face="Verdana,
Arial, Helvetica, sans-serif"><%=rs("login")%></font></td>

La riga centocinque è quella che merita maggior attenzione in quanto ci consente di legger il messaggio effettuando un click col mouse sul titolo del messaggio stesso:

105: <td nowrap><font size="2" face="Verdana,
Arial, Helvetica, sans-serif"><a href="javascript:;"
onClick="ApriFinestra('leggi.asp?idMsg=<%=rs("id_msg")%>');PrimoPiano ();"><%=rs("titolo")%></a></font></td>

Come potete osservare tramite l'evento javascript onClick viene chiamata la funzione ApriFinestra:

020: function ApriFinestra(str)
021: {
022:
023: var larg=480;
024: var alt=450;
025:
026: toptop=(screen.height/2)-(alt/2);
027: leftleft=(screen.width/2)-(larg/2);
028:
029: searchWin = window.open(str, '', 'top='+toptop+', left='+leftleft+',
scrollbars=yes, width='+larg+', height='+alt+', status=no ,location=no
,toolbar=no' );
030:
031:
032: }
033: function PrimoPiano(){
034: onBlur="this.focus();"
035: }

Come potete osservare la funzione ApriFinestra(str) richiede un parametro. Se guardiamo la riga centocinque comprendiamo che il parametro è il nome della pagina che consente di leggere i messaggi uniti in modo corretto con il codice univoco del messaggio:

leggi.asp?idMsg=<%=rs("id_msg")%>

Prima di passare al dato successivo volevo porre la vostra attenzione alla riga ventinove. Per poter mostrare la tutta la riga ho dovuto aggiungere degli spazi all'interno della window.open. E' consigliabile rimuoverli prima di utilizzare la riga specifica.
Tornando alla nostra tabella dei dati, proseguiamo con la riga centosei:

106: <td nowrap><center><input type="checkbox"
name="pvtElimina" value="<%=rs("id_msg")%>"></center></td>

Nell'ultima colonna mostriamo una checkBox che dovrà essere selezionata se si desidera eliminare definitivamente il messaggio dalla nostra bacheca. Una volta selezionati i messaggi da cancellare, basterà cliccare sull'apposito pulsante di cancellazione:

177: <td width="50%"><input type="submit" name="premuto" value="Cancella Messaggio" onclick="return conferma_elimina();"></td>

Come potete osservare al click del pulsante viene chiamata una funzione javascript per confermare la cancellazione dei messaggi selezionati.

013: <script language="JavaScript">
014: <!--
015: function conferma_elimina()
016: {
017: return confirm("Sei sicuro di voler cancellare i messaggi selezionati?");
018: }

Questa funzione è molto comoda in quanto fa scattare un eventuale campanello d'allarme se l'utente non desidera cancellare i messaggi selezionati. Ci sono passato personalmente: ho cancellato una serie di messaggi personali per errore e vi assicuro che non è per nulla piacevole.

Ti consigliamo anche