4 messaggi dal 17 novembre 2004
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>&nbsp;<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">&nbsp;
</FORM></CENTER>

<hr color="gray">
<br><a href="default.asp">Torna alla Home Page</a>

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.