Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema memorizzazione array in variabile di sessione

    Raga
    Sto provando a salvare un array in una variabile di sessione ma non me lo memorizza tanto che anche utilizzando Isempty mi restituisce sempre FALSE ....

    codice:
    
    <%
    'creiamo un array bidimensionale, un po abbondante visto
    ' che non conosco il numero di controlli del form
    
    reDim arrayForm(1, 255)
    
    intIndice = 0
    For intLoop = 1 to Request.Form.Count
    
    'se il numero di controlli del form e uguale a uno
    valore =  Request.Form(intLoop)
    IF Isnumeric(valore) then 
    valore = Cint(valore)
    end if  
    
    IF valore <> "0" then
    'immagazzino nell'array
    
    campo2 = Request.Form.Item(intLoop)
    IF Isnumeric(campo2) then
    campo2 = TRIM(Replace(campo2,"€",""))
    end if
    arrayForm(1, intIndice) =  Request.Form.Item(intLoop)
    intIndice = intIndice + 1
    end if 
    Next
    
    'ridimensiono l'array alle giuste dimensioni, dato che ora
    'conosco il numero di controlli del form e tolgo il campo invia
    
    ReDim Preserve arrayForm(1, intIndice-1)
    
    
    Session("cart") = arrayForm
    prova = Session("cart")
    
    response.write Isempty(prova)
    
    
    %>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    ... ma Isempty non restituisce false se la variabile e' piena

    Vado a naso per l'assonanza col suo nome. non l'ho mai usata...


    Edit: qualcuno mi da pure ragione http://www.devguru.com/technologies/vbscript/13939
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    OK ma perché NON VIENE RIEMPITA?
    Io ho letto in giro che si crea in quel modo la session di un array bidimensionale.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ho verificato il concetto ed il false indica che la session è riempita.
    Ho provato anche nella pagina successiva a utilizzarla ma non stampa nulla a video e non capisco ove sia l'errore.

    codice:
    
    <%
    arrayForm = Session("cart")
    mySessionID = Session.SessionID
    response.write mySessionID
    response.write Isempty (arrayForm)
    
    
    For intIndice = 0 To UBound(arrayForm, 2)
    Response.Write "Valore campo: " & arrayForm(1, intIndice)  & "
    "
    Next
    'response.write totale 
    %>

  5. #5
    mi ricordo che l'array doveva essere dimensionato *prima* di popolarlo con la session, ma non ritrovo lo script (son passati anni...) fa' qualche prova

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ho provato cosi ma mi restituisce solo la scritta valore campo e cmq non penso sia corretto dichiarare l'array dopo la sessione essendo che non so a priori quanto sia grande
    Qualcuno che ha esperienza mi puo' aiutasre

    codice:
    arrayForm  = Session("cart") 
    mySessionID = Session.SessionID
    response.write mySessionID
    response.write Isempty (arrayForm)
    reDim arrayForm(1,15)
    
    
    intIndice = 0
    For intIndice = 0 To UBound(arrayForm,2)
    Response.Write "Valore campo: " & arrayForm(1,intIndice)  & "
    "
    Next

  7. #7
    infatti andrebbe dimensionata *prima* come ti ho suggerito. metti in sessione anche le dimensioni per dimensionare correttamente l'array prima di popolarlo

  8. #8
    così


    codice:
    <%
    Dim Array(2,2)
    Array(1,1)="A1"
    Array(1,2)="A2"
    Array(2,1)="B1"
    Array(2,2)="B2"
    Session("Array")=Array
    Response.Redirect "ArraySession2.ASP"
    %>
    codice:
    <%
    Dim Array
    Array=Session("Array")
    Response.Write Array(1,1) & "
    "
    Response.Write Array(1,2) & "
    "
    Response.Write Array(2,1) & "
    "
    Response.Write Array(2,2) & "
    "
    %>

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ragazzi vi posto il codice della pagina e riepilogo i passaggi in quanto mi servirebbe aiuto affinche possiate aiutarmi a correggere il codice in modo da capire xke nonostante prenda correttamente il Sessionid continua sempre a dirmi che la sessione è vuota e tutto questo mi crea problemi.

    1 - Verifico attraverso la funzione IsArray se esiste l'array nella sezione
    2 - Se esiste la session recupero i dati
    3 - con la sintasssi Request.Form.Count controllo se vi sono campi e se maggiori di 0 allora eseguo il relativo codice
    4 - Recupero i dati inseriti nel db tramite la variabile mysession

    codice:
    <%
    FUNCTION FixQuotes( theString )
    FixQuotes = REPLACE( theString, "'", "''" )
    END FUNCTION
    
    function salvacart
    IF Right(tot,2) = "00" Then
    tot1=Int(Replace(tot, ".","",1, 1))
    else
    tot1=Replace(tot, ".","",1, 1)
    tot1=Replace(tot1,",",".")
    end if
    SQL = "INSERT INTO summitcart (nmprodotto,qta,totprodotto,espositoreID	)"
    SQL = SQL & " VALUES('" 
    SQL = SQL & FixQuotes(descrizione) & "',"
    SQL = SQL & FixQuotes(qta)         & ","
    SQL = SQL & FixQuotes(tot1)         & ","
    SQL = SQL & FixQuotes(mysession )  & ")"
    conn.Execute(SQL)
    end function
    
    
    
    
    'creiamo un array bidimensionale, un po abbondante visto
    ' che non conosco il numero di controlli del form
    IF NOT IsArray(Session("cart")) Then
    reDim arrayForm(1, 255)
    mysession = Session.SessionID
    response.write Isempty(arrayForm )
    response.write mysession
    
    else
    carrello = Session("cart")
    mysession = Session.SessionID
    response.write Isempty(arrayForm )
    response.write mysession
    end if 
    
    IF Request.Form.Count > 0 then
    reDim arrayForm(1, 255)
    intIndice = 0
    For intLoop = 1 to Request.Form.Count
    
    'se il numero di controlli del form e uguale a uno
    valore =  Request.Form(intLoop)
    IF Isnumeric(valore) then 
    valore = Cint(valore)
    end if  
    
    IF valore <> "0" then
    'immagazzino nell'array le coppie nome-controllo/valore-controllo
    campo1 = Request.Form.Key(intLoop)
    campo2 = Request.Form.Item(intLoop)
    
    IF Isnumeric(campo2) then
    campo2 = TRIM(Replace(campo2,"€",""))
    end if
    
    arrayForm(0, intIndice) =  campo1
    arrayForm(1, intIndice) =  campo2
    intIndice = intIndice + 1
    end if 
    next
    
    'ridimensiono l'array alle giuste dimensioni, dato che ora
    'conosco il numero di controlli del form e tolgo il campo invia
    
    ReDim Preserve arrayForm(1, intIndice-1)
    
    Session("cart") = arrayForm
    
    For intIndice = 0 To UBound(arrayForm , 2)
    
    IF arrayForm (0,intIndice) = "ST" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    salvacart
    end if 
    
    IF arrayForm (0,intIndice) = "BM" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    salvacart
    end if 
    
    IF arrayForm (0,intIndice) = "WK" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    salvacart
    end if 
    
    
    IF arrayForm (0,intIndice) = "RKIT" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    salvacart
    end if 
    
    Next
    end if 
    
    %>
    
    
    
    <%
    Set rscart = Server.CreateObject("ADODB.Recordset") 
    sqlcart = "SELECT * FROM summitcart where espositoreID = " & mysession  &""
    rscart.open sqlcart, conn, 1, 3 
    if rscart.eof then
    else
    Response.write "va bene"
    end if 
    %>
    
    <%
    conn.close
    set conn=nothing
    %>

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Qualcuno riesce ad aiutarmi perché la session non viene mantenuta....

    codice:
    <%
    'creiamo un array bidimensionale, un po abbondante visto
    ' che non conosco il numero di controlli del form
    
    IF NOT IsArray(Session("cart")) Then
    reDim arrayForm(1, 255)
    else
    arrayForm  = Session("cart")
    response.write Isempty(arrayForm )
    response.write mysession
    end if 
    
    
    'se il numero di controlli del form è MAGGIORE di 0
    IF Request.Form.Count > 0 then
    
    reDim arrayForm(1, 255)
    intIndice = 0
    For intLoop = 1 to Request.Form.Count
    valore =  Request.Form(intLoop)
    
    IF Isnumeric(valore) then 
    valore = Cint(valore)
    end if  
    
    IF valore <> "0" then
    'immagazzino nell'array le coppie nome-controllo/valore-controllo
    campo1 = Request.Form.Key(intLoop)
    campo2 = Request.Form.Item(intLoop)
    
    IF Isnumeric(campo2) then
    campo2 = TRIM(Replace(campo2,"€",""))
    end if
    
    arrayForm(0, intIndice) =  campo1
    arrayForm(1, intIndice) =  campo2
    intIndice = intIndice + 1
    
    end if 
    next
    
    ReDim Preserve arrayForm(1, intIndice-1)
    Session ("cart") = arrayForm
    
    end if  
    %>
    
    
    
    <%
    For intIndice = 0 To UBound(arrayForm , 2)
    
    IF arrayForm (0,intIndice) = "ST" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    'Response.Write "Descrizione: " & descrizione &" - " & qta &" - " & tot &"
    "
    end if 
    
    IF arrayForm (0,intIndice) = "BM" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    'Response.Write "Descrizione: " & descrizione &" - " & qta &" - " & tot &"
    "
    end if 
    
    IF arrayForm (0,intIndice) = "WK" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    'Response.Write "Descrizione: " & descrizione &" - " & qta &" - " & tot &"
    "
    end if 
    
    
    IF arrayForm (0,intIndice) = "RKIT" then
    descrizione = arrayForm (1, intIndice)
    qta = arrayForm  (1, intIndice+1)
    tot = arrayForm  (1, intIndice+2)
    end if 
    
    Next
    
    
    sconto = 0
    imponibile = 0
    Response.Write "<table align=center><thead><tr>"
    Response.Write "<th width=200>Nome Prodotto</th>"
    Response.Write "<th width=2></th>"
    Response.Write "<th width=50>Quantità</th>"
    Response.Write "<th width=2></th>"
    Response.Write "<th width=150>Totale</th></tr></thead>"
    Response.Write "<tbody>"
    For i = 0 to ubound (arrayForm ,2)
    
    IF arrayForm  (0,i) = "ST" then
    descrizione = arrayForm (1,i) 
    qta   = arrayForm (1, i+1)
    tot =  arrayForm (1, i+2) 
    sconto = (sconto + (tot * 0.5))
    %>
    <tr><TD width=200><%=descrizione%></TD>
    <TD Class=tdbordo></td>
    <TD align=center width=50><%=qta%></TD>
    <TD class=tdbordo></td>
    <td align=right width=150><%=FormatCurrency(tot)%></td></tr>
    <%
    end if
    
    IF arrayForm  (0,i) = "BM" then
    descrizione = arrayForm (1,i) 
    qta   = arrayForm (1, i+1)
    tot =  arrayForm (1, i+2)
    sconto = (sconto + (tot * 0.5))
    %>
    <tr><TD width=200><%=descrizione%></TD>
    <TD Class=tdbordo></td>
    <TD align=center width=50><%=qta%></TD>
    <TD class=tdbordo></td>
    <td align=right width=150><%=FormatCurrency(tot)%></td></tr>
    <%
    end if 
    
    IF arrayForm  (0,i) = "WK" then
    descrizione = arrayForm (1,i) 
    qta   = arrayForm (1, i+1)
    tot =  arrayForm (1, i+2) 
    sconto = (sconto + (tot * 0.5))
    %>
    <tr><TD width=200><%=descrizione%></TD>
    <TD Class=tdbordo></td>
    <TD align=center width=50><%=qta%></TD>
    <TD class=tdbordo></td>
    <td align=right width=150><%=FormatCurrency(tot)%></td></tr>
    <%
    end if 
    
    IF arrayForm  (0,i) = "RKIT" then
    descrizione = arrayForm (1,i) 
    qta   = arrayForm (1, i+1)
    tot =  arrayForm (1, i+2) 
    sconto = (sconto + (tot * 0.5))
    Response.Write "<tr>"
    %>
    <TD width=200><%=descrizione%></TD>
    <TD Class=tdbordo></td>
    <TD align=center width=50><%=qta%></TD>
    <TD class=tdbordo></td>
    <td align=right width=150><%=FormatCurrency(tot)%></td></tr>
    <%
    end if
    next
    imponibile = imponibile - sconto
    IVA = imponibile * 0.21
    totale = imponibile + IVA
    %>
    <TR><TD colspan=4 class=tdfoot align=right>Sconto 50%</TD><TD align=right class=tdfoot><font color=red>-<%=(FormatCurrency(sconto))%></font></td></tr>
    <td colspan=4 align=right>Imponbile:</td><td align=right><%=FormatCurrency(imponibile)%></td></tr><tr>
    <td colspan=4 align=right>IVA 21%:</td><td align=right><%=FormatCurrency(IVA)%></td></tr><TR>
    <TD colspan=5 class=linea></td></tr>
    <TR><td colspan=4 align=right>TOTALE</td><td align=right><%=FormatCurrency(totale)%></td>
    </TR>
    </tbody></table>

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 © 2025 vBulletin Solutions, Inc. All rights reserved.