Scopo Articolo
Con questo script intendo mostrare due linguaggi che posseggono ambienti di lavoro diversi, possano collaborare tra di loro senza nessun problema.
Cosa Accade
I linguaggi in questione sono Active Server Page (lavorante su Server-Side) e Java Script (lavorante su Client-Side). Tramite Asp, verranno estratti da un database una serie di indirizzi di posta elettronica e i nomi degli utenti. Il compito del Javascript consiste nel generare l'azione che porterrà ad aprire il programma di posta elettronica installato sulla propria macchina e di generare la mail richiesta. Sarà poi compito dell'utente finale , completare la mail ed inviarla.
Script Utilizzato
<html>
<head>
<title>- - - Active Server Page & Javascript - - -</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="Javascript1.2">
<!-- Nascondi codice ai browser incompatibili
function invia_posta(indirizzo)
{
window.location.href = 'mailto:' + indirizzo.options[indirizzo.selectedIndex].value
;
}
-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FFFFCC"
vlink="#66FF99" alink="#66FF99">
<table width="100%" border="0" cellspacing="0"
cellpadding="0" height="100%">
<tr>
<td valign="middle">
<div align="center">
<form name="Invio_mail">
<table width="500" border="0" cellspacing="0"
cellpadding="0">
<tr bgcolor="#66CCFF">
<td colspan="3">
<div align="center"><b><font size="2">-
- - Active Server Page & Javascript - - -</font></b></div>
</td>
</tr>
<tr>
<td width="100"> </td>
<td width="300"> </td>
<td width="100"> </td>
</tr>
<tr>
<td width="100">
<div align="center"><b>Scriviamo a :</b></div>
</td> <td width="300">
<div align="center">
<select name="indirizzo_mail">
<%
dim strCode
strCode="innovatel"
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("mail.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open (strConn)
sql = "SELECT * FROM mail"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
rs.movefirst
do while not(rs.eof)
%>
<option value="<%=rs(0)%>" selected><%=rs(1)%></option>
<%
rs.movenext
loop
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
</select>
</div>
</td>
<td width="100">
<div align="center">
<input type="submit" onClick="invia_posta(this.form.indirizzo_mail);"
value="Invia">
</div>
</td>
</tr>
<tr>
<td width="100"> </td>
<td width="300"> </td>
<td width="100"> </td>
</tr>
<tr>
<td colspan="3" bgcolor="#66CCFF">
<div align="center"><font size="2"><b>Script
offerto da : <a href="http://www.innovatel.it" target="_blank">Tele-Com
Service S.n.c.</a> </b></font></div>
</td>
</tr>
</table>
</form>
</div>
</td>
</tr>
</table>
</body>
</html>
Database utilizzato
Il database utilizzato è di tipo Access, protetto da password ( innovatel ) all'apertura , ed è molto semplice. Infatti esso contiene una sola tabella con due campi. Il primo di essi , indicato come rs(0) nel codice Asp , contiene l'indirizzo di posta elettronica e il secondo campo , indicato come rs(1) nel codice Asp , contiene il nome del proprietario della mail . Entrambi i campi sono di tipo testo ed hanno una lunghezza di 50 caratteri. Naturalmente è il primo campo , rs(0) , a svolgere la funzione di chiave primaria. La situazione fornita nello script contiene quattro indirizzi di posta elettronica. Uno , il mio , è reale ; mentre gli altri tre sono inventati .Per aggiungere dati bisogna intervenire manualmente sul database oppure realizzare uno script che scolge tale funzione. Il motivo di tale scelta è caduto sul fatto che non è mia intenzione in questo articolo mostrare come si aggiungono dati in un database, ma mostrare appunto la collaborazione tra linguaggi diversi.