Salve a tutti, seguendo le istruzioni ho costruito con successo un carrello per il mio sito.
La domanda è: come posso fare poi per inviare il contenuto del carrello via e-mail utilizzando CDOSYS???
C'è qualche buon anima in grado di aiutarmi???
La mia pagina carrello.asp è la seguente:
<% RESPONSE.addheader "pragma","no-cache" %>
<html>
<head>
<title>Cdsound.it...cd e dischi usati</title>
<script language=javascript>
function checkForm()
{
//Questa funzione verifica se le quantità inserite dall'utente siano corrette
formRef=document.forms[0];
qtaCount=(formRef.qta.length>0 ? formRef.qta.length : 1);
if(qtaCount==1)
{
valore=formRef.qta.value;
if(isNaN(valore) || (valore==0))
{
alert("La quantità della riga 1 non è valida!"); return false;
}
}
for(k=0;k<qtaCount;k++)
{
valore=formRef.qta[k].value;
if(isNaN(valore) || (valore==0)) {alert("La quantità della riga " + (k+1) + " non è valida!"); return false}
}
return true;
}
</script>
</head>
<body>
<h1>Cdsound.it</h1>
<h2>Carrello della spesa</h2>
<script runat=server language=vbscript>
sub aggiungiArticolo()
'Questa routine aggiunge un nuovo articolo al carrello
Archidis=split(request("Archidis"),",")
'Se il carrello non è vuoto devo verificare
'se i nuovi articoli sono già presenti
if presenti=1 then
for art=0 to ubound(Archidis)
trovato=false
for righe=0 to ubound(carrello,2)
if clng(carrello(0,righe))=clng(Archidis(art)) then
trovato=true
righe=ubound(carrello,2)+1
end if
next
if trovato=false then
'righe=ubound(carrello,2)
redim preserve carrello(1,righe)
carrello(0,righe)=Archidis(art)
carrello(1,righe)=1
end if
next
else
redim carrello(1,nuoviArt-1)
for c=0 to nuoviArt-1
carrello(0,c)=Archidis(c)
carrello(1,c)=1
next
end if
presenti=1
end sub
sub cancellaArticoli()
'Questa routine elimina un articolo dal carrello
'con una tecnica di shifting degli elementi
Archidis=split(request("elimina"),",")
presenti=true
for k=0 to ubound(Archidis)
x=0
do
if cint(carrello(0,x))=cint(Archidis(k)) then
'Verifico se si tratta dell'ultimo elemento
if x<ubound(carrello,2) then
ultimo=ubound(carrello,2)
carrello(0,x)=carrello(0,ultimo)
carrello(1,x)=carrello(1,ultimo)
end if
if ubound(carrello,2)=0 then
erase carrello
presenti=false
else
redim preserve carrello(1,ubound(carrello,2)-1)
end if
exit do
else
x=x+1
end if
loop
next
end sub
sub aggiornaDati
'Questa routine modifica le quantità degli articoli scelti dall'utente
for k=0 to ubound(carrello,2)
carrello(1,k)=request("qta")(k+1)
next
end sub
</script>
<%
'ANALISI DELLE RICHIESTE
'Imposto una variabile bool che tiene traccia della presenza
'di elementi nell'array
if isArray(session("carrello"))=0 then
dim carrello()
presenti=0
else
carrello=session("carrello")
presenti=1
end if
'Verifico l'azione scelta dall'utente
if request("action")="Aggiorna carrello" then
'Verifico se l'utente ha eliminato degli articoli o variato alcune quantità
cancellaArt=request("elimina").count
if cancellaArt>0 then
cancellaArticoli
else
aggiornaDati
end if
end if
'Verifico se l'utente ha chiesto di svuotare il carrello
if request("action")="Svuota carrello" then
presenti=0
session("carrello")=null
else
'Verifico se ci sono nuovo articoli da inserire
nuoviArt=request("Archidis").count
if nuoviArt>0 then aggiungiArticolo
end if
'Provvedo alla visualizzazione del contenuto dell'array costruendo la
'lista di codici_articolo da visualizzare con la query SQL
if presenti=0 then
response.write "<br><font color=red><b>Il carrello è vuoto.</b></font><br><br>"
session("carrello")=null
else
for c=0 to ubound(carrello,2)
codici=codici & "," & carrello(0,c)
next
codici=right(codici,len(codici)-1)
response.write "Contenuto del carrello:<br><br>"
'Riassegno all'oggetto SESSION il contenuto dell'array
session("carrello")=carrello
%>
<form ACTION="carrello.asp" METHOD="POST" onSubmit="return checkForm()">
<table border="1">
<tr bgcolor="#dddddd">
<td><font face="Arial">Elimina</font></td>
<td><font face="Arial">Codice</font></td>
<td><font face="Arial">Descrizione</font></td>
<td align=center><font face="Arial">Tipo</font></td>
<td><font face="Arial">Prezzo</font></td>
</tr>
<%
'Apro la connessione verso il database usando ADO e il provider OLE DB di Access 97
Set rsArchidis = Server.CreateObject("ADODB.RecordSet")
StrConn="DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/mdb-database/dbase.mdb")
RsArchidis.open "select * from Archidis where cod in(" & codici & ")",StrConn
'where cod in(" & Archidis & ")
'Costruisco la tabella Archidis con una casella di conferma acquisto
'Assegno ad una variabile la collezione dei campi
Set campi=rsArchidis.fields
riga=0
for k=0 to ubound(carrello,2)
NewTd="<TD align=center><input type=checkbox name=elimina value=" & campi("COD") & ">"
NewTd=NewTd & "<TD>" & campi("COD")
NewTd=NewTd & "<TD width=350>" & campi("AUTORE")& " - "& campi("TITOLO") & "</TD>"
NewTd=NewTd & "<TD>" & campi("SUP")
'NewTd=NewTd & "<TD align=center><input type=text size=3 name=qta value=" & carrello(1,k) & "></TD>"
totale=totale+campi("EUR")*carrello(1,k)
NewTd=NewTd & "<TD>" & formatCurrency(campi("EUR")*carrello(1,k)) & "</TD>"
NewRow="<TR>" & NewTd & "</TR>"
Response.write NewRow
rsArchidis.MoveNext
next
response.write "<TR><TD colspan=4 align=right><b>Totale:</b><TD><font color=red>" & formatCurrency(totale) & "<font><TD></TR>"
RsArchidis.Close
Set RsArchidis=nothing
%>
</table>
<br>
<input type=submit name="action" value="Aggiorna carrello">
<input type=submit onclick="return confirm('Sei sicuro di voler eliminare il contenuto del carrello ?')" name="action" value="Svuota carrello"><br> <p><br>
<input type=button value="Conferma ordine" onclick="location.href='conferma.asp'">
</p>
</form>
<%
end if
%>
<a href="../AAAAa.asp">Aggiungi altri articoli</a><br>
<CENTER><FORM>
<INPUT TYPE="button" VALUE="Indietro" onClick="history.back()" style="float: left">
</FORM></CENTER>
<hr color="gray">
<br><a href="default.asp">Torna alla Home Page</a>