spiego subito...
pagina: CATALOGO.asp
pagina: carrello.asp
apro una connessione e visualizzo tutti i record.
Ogni ciclo possiede un link alla stessa pagina che passa una variabile alla session:
<a href ="catalogo.asp?articolo=<%= rsfilm("idfilm")"%>">
Ok in questa pagina tramite, delle req expression controllo se quell'articolo e' presente nella session, morale della favola non posso avere doppioni.
Bene, ora voglio vedere quello che ho ordinato. Vado nella pagina catalogo.asp e visualizzo il contenuto della session:
codice:
<%
IF request.form("codici") = "" THEN
codici = session("IDFILM")
ELSE
codici = request.form("codici")
END IF
IF request.form("elimina") <> "" THEN
elimina = split(request.form("elimina"),",")
for i = 0 TO UBOUND(elimina)
IF idfilm <> "" THEN
codici = split(idfilm,",")
ELSE
codici = split(request.form("codici"),",")
END IF
for x = 0 TO UBOUND(codici)
IF elimina(i) <> codici(x) THEN
IF idfilm = "" THEN
idfilm = codici(x)
ELSE
idfilm = idfilm + "," + codici(x)
END IF
END IF
NEXT
NEXT
codici = idfilm
session("IDFILM") = idfilm
END IF
IF codici <> "" THEN
response.write "Contenuto della variabile elimina: " & request.form("elimina") & "
"
response.write "Contenuto della variabile codici: " & codici & "
"
response.write "Contenuto della session IDFILM: " & session("IDFILM") & "
"
'Connessione al database con SQL per visualizzare i dati presenti nella variabile codici
set filmconn = server.createobject ("ADODB.Connection")
filmconn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("database\archivio.mdb")
'sql = "SELECT * FROM film ORDER BY IDFILM"
SQL = "SELECT * FROM film WHERE idfilm IN ("& codici & ")"
set rsfilm = filmconn.execute(sql)
%>
questo invece e' il codice del form situato nella stessa pagina dopo:
codice:
<form method="post">
<%
do until rsfilm.eof
%>
<input type="checkbox" name="elimina" value="<%response.write rsfilm("idfilm")%>">
<%
response.write rsfilm("idfilm") & " "
response.write rsfilm("FILM") & " "
response.write "es. quantità 2: " & rsfilm("PREZZO")*2 & "
"%>
<%
rsfilm.MoveNext
loop
Rsfilm.Close
set film=nothing
filmConn.Close
Set filmConn=nothing
%>
<input type="hidden" name="codici" value="<%response.write codici%>">
<input type="submit" name="Submit" value="Aggiorna">
</form>
<%
ELSE
session("IDFILM") = ""
response.write "il carrello è vuoto!"
END IF
%>
il problema non sussiste quando clicco, su aggiorna senza toccare i checkbox, i record restano identici. Se seleziono solo un checkbox OK.
Ma se provo ad eliminarne piu' di uno arriva il problema.
Esempio ho 3 articoli:
1
2
3
selezioni, elimina checkbox, 2 e 3
e mi stampa video:
codici 1,3,1,3
SESSION("IDFILM") 1,3,1,3