Ho preso due pagine.asp, ovvero una guida, e le sto adattando alle mie esigenze.
Vi presento il problema.
catalogo.asp
Originariamente lo script prevedeva di inviare tramite form il campo ID di un determinato articolo checckando un checkbox con valore name="articoli" alla pagina carrello.asp. All'interno di questo form gli articoli sono stampati a video ciclando i record di un database.
carrello.asp
Questa pagina tramite il comando:
crea l'array con la collection di valori.codice:articoli = split(request("articoli"),",")
FIN QUI TUTTO OK.
Io ho modificato il tutto, perche' nel mio caso devo paginare i record su più pagine e, correggetemi se sbaglio, se l'utente checcka su due checkbox nella 1° pagina e va alla pagina successiva perdo quei campi. Ora ho pensato di sostituire al campo checkbox un link, eliminando il form, che fa riferimento alla stessa pagina passando la variabile con quel valore e inserendola all'interno di una variabile sessoion. In questo modo anche cambiando pagina i valori non vengono persi.
Quindi, stando nella pagina catalogo.asp ogni link generato dal ciclo avrà come link "catalogo.asp?articoli=<%=rs("ID")%>"
Al refresh della pagina aggiungo il valore contenuto nella variabile ad una variabile session in questo modo:
Poi ho inserito un pulsante che mi porta alla pagina carrello.aspcodice:IF session("articoli") = "" THEN session("articoli") = request.querystring("articoli") ELSE session("articoli") = session("articoli") + "," + request.querystring("articoli") END IF
Qui ho modificato poche linee di codice della pagina carrello.asp che qui riporto:
ORIGINALE:
MODIFICATO:codice:articoli = split(request("articoli"),",")
l'altra parte di codice, verifica se ci sono nuovi articoli da inserire.codice:articoli = split(session("articoli"),",")
originale:
modificato:codice:' Verifico se l'utente ha chiesto di svuotare il carrello IF request("articoli") = "Svuota Carrello" THEN presenti = 0 session("carrello") = null ELSE 'verifica se ci sono nuovi articoli da inserire nuoviArt = request("articoli").count if nuoviArt > 0 then AggiungiArticolo END IF
Facendo se clicco nella pagina catalogo.asp su dei prodotti e dopo vado nella pagina carrello.asp tutto ok, anche modifico quantità o elimino prodotti.codice:' Verifico se l'utente ha chiesto di svuotare il carrello IF request("articoli") = "Svuota Carrello" THEN presenti = 0 session("carrello") = null ELSE 'verifica se ci sono nuovi articoli da inserire conteggioArt = split(session("articoli"),",") nuoviArt = 0 for x = 0 TO UBOUND(conteggioArt) nuoviArt = nuoviArt +1 next if nuoviArt > 0 then AggiungiArticolo END IF
Ma se vado nella pagina catalogo.asp nuovamente e seleziono un altro articolo e poi vado nella pagina carrello.asp mi da questo errore:
Errore di run-time di Microsoft VBScript (0x800A000D)
Tipo non corrispondente: 'clng'
/sexydvd/carrelloprova.asp, line 69
ecco la parte di codice in questione con la linea in question in rosso:
la variabile di sessione e': session("IDFILM") e non session("articoli") scusate, e' solo una precisazione..codice:<script runat=server language=vbscript> sub aggiungiArticolo() 'Questa routine aggiunge un nuovo articolo al carrello 'articoli=split(request("articoli"),",") articoli = split(session("IDFILM"),",") 'Se il carrello non è vuoto devo verificare 'se i nuovi articoli sono già presenti if presenti=1 then for art=0 to ubound(articoli) trovato=false for righe=0 to ubound(carrello,2) if clng(carrello(0,righe))=clng(articoli(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)=articoli(art) carrello(1,righe)=1 end if next else redim carrello(1,nuoviArt-1) for c=0 to nuoviArt-1 carrello(0,c)=articoli(c) carrello(1,c)=1 next end if presenti=1 end sub ...
Questo dovrebbe essere javascript.
Non sono molto ferrato in materia e Vi chiedo aiuto.
Grazie, sono bloccato e non posso andare avanti...

Rispondi quotando

