Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    errore clng con visualbasic su pagina carrello.asp

    modifiche ad una pagina carrello

    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:

    codice:
    articoli = split(request("articoli"),",")
    crea l'array con la collection di valori.

    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:

    codice:
    IF session("articoli") = "" THEN
    session("articoli") = request.querystring("articoli")
    ELSE
    session("articoli") = session("articoli") + "," + request.querystring("articoli")
    END IF

    Poi ho inserito un pulsante che mi porta alla pagina carrello.asp
    Qui ho modificato poche linee di codice della pagina carrello.asp che qui riporto:
    ORIGINALE:

    codice:
    articoli = split(request("articoli"),",")

    MODIFICATO:

    codice:
    articoli = split(session("articoli"),",")

    l'altra parte di codice, verifica se ci sono nuovi articoli da inserire.
    originale:
    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
    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
    conteggioArt = split(session("articoli"),",")
    nuoviArt = 0
    for x = 0 TO UBOUND(conteggioArt)
    nuoviArt = nuoviArt +1
    next
    if nuoviArt > 0 then AggiungiArticolo
    END IF
    Premetto che questo e' tutto asp, continuate a leggere perchè ora viene la parte di codice in "vb" dove incontro il problema.

    Così modificato, provo il tutto: apro la pagina catalogo.asp clicco su dei prodotti e dopo vado nella pagina carrello.asp tutto ok, anche modificando quantità o eliminando prodotti.
    Ma se ritorno dalla pagina carrello.asp , con la session piena di articoli, nella pagina catalogo.asp nuovamente e seleziono un altro articolo e poi ritorno nella pagina carrello.asp nella pagina carrello.asp mi appare 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:

    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
    ...
    la variabile di sessione e' session("IDFILM") e non session("articoli") scusate, e' solo una precisazione..

    Si tratta di VB, non conosco bene questo linguaggio. Dovrei risolvere questo piccolo prob. e poi posso mettere in linea questo benedetto sito!
    Non sono molto ferrato in materia e Vi chiedo aiuto.
    Grazie, sono bloccato e non posso andare avanti...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Devi smetterla di postare i tuoi quesiti su forum differenti... leggiti bene il regolamento alla voce crossposting.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.