Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Problema invio valori array tramite form

    Ho creato un carrello con le variabili Session. I codici dei prodotti vengono salvati in un array.
    Il mio problema è estrarre i codici dei prodotti dall'array e spedirli per e-mail tramite un modulo.

    Riesco a stampare a video i valori dell'array, mi vengono mostrati i codici di tutti i prodotti inseriti.
    codice:
    <%
    localCart = Session( "cart" )
    id = TRIM( Request( "id" ) )
    %>
    <html>
    <head>
    <title>Invia la richiesta</title>
    </head>
    <body>
    ' scrivo i valori presenti nel mio array e
    ' per ciascun id mi faccio restituire il relativo codice 
    ' presente nella tabella accessori.
    
    I prodotti sono: 
    
    <%
    FOR i = 0 TO UBOUND( localCart, 2 )
    IF localCart( CARTPID, i ) <> "" THEN
    
    sqlString = "SELECT * FROM accessori WHERE id=" & localCart(CARTPID, i )
    SET RS = Conn.Execute(sqlString)
    
    Response.Write RS("codice")
    Response.Write("
    ")
    
    RS.Close
    Set RS=Nothing	                
    END IF
    NEXT
    %>
    </body>
    </html>
    Ma non riesco ad andare avanti... qualche suggerimento?

  2. #2
    non ho capito dov'è l'intoppo

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    L'intoppo è che non ho capito come si fanno ad estrarre i valori dall'array per farci qualcosa: per esempio, mandarli per e-mail o inserirli in un database.

    Riesco a farli stampare a video e poi?
    Pensavo di usare in qualche modo la funzione Join per unire tutti i valori (separandoli con un simbolo), recuperarli dalla pagina che invia l'email e splittarli all'occorrenza. Ma la cosa non mi riesce.

    Magari il tutto è banale e mi sto perdendo in un bicchier d'acqua...

  4. #4
    per assegnare

    arraynomi(1)="pippo"

    oppure

    nome="pippo"
    arraynomi(1)=nome

    per recuperare

    nome=arraynomi(1)

    ma mi pare strano che l'intoppo sia qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Hai ragione, forse non mi sono spiegato bene.

    Faccio il punto della situazione.
    Riesco a popolare l'array e a passare i valori da una pagina all'altra.
    Adesso devo spedire per e-mail i valori contenuti nell'array, ma non ci riesco.

    In questo modo prendo i valori contenuti nell'array e (a titolo di conferma di avere i dati corretti) stampo a video i codici dei prodotti, dove l'id corrisponde ad i valori contenuti nell'array.
    Recupero anche nome, cognome ed email che mi serviranno successivamente.

    E fin qui funziona.
    codice:
    nome = trim(Request("nome"))
    cognome = trim(Request("cognome"))
    email = trim(Request("email"))
    
    localCart = Session("cart")
    id = TRIM( Request("id") )
    FOR i = 0 TO UBOUND( localCart, 2 )
    IF localCart( CARTPID, i ) <> "" THEN
    sqlString = "SELECT * FROM accessori WHERE id=" & localCart(CARTPID, i )
    SET RS = Conn.Execute(sqlString)
    
    Response.Write RS("codice")
    Response.Write("
    ")
    
    RS.Close
    Set RS=Nothing	                
    END IF
    NEXT
    Adesso devo spedire l'email.
    codice:
    Dim mail
    Set mail = CreateObject("CDO.Message")
    
    mail.From = "indirizzo@sito.it"
    mail.To = email
    mail.Subject = "Oggetto"
    
    mail.HTMLBody = ""I dati inseriti sono:
    " + nome + "
    " + cognome + "
    " + email + "
    
    Prodotti per i quali si desiderano ricevere maggiori informazioni: " 
    
    mail.Fields("urn:schemas:httpmail:importance").Value = 1
    mail.Fields.Update()
    
    mail.Send()
    
    Set mail = Nothing
    Devo inserire in mail.HTMLBody i valori dell'array, ma qui mi fermo. Non posso mettere il ciclo for dentro a mail.HTMLBody e quindi? Come faccio a spedire i valori contenuti all'interno dell'array?

    Grazie!

  6. #6
    perché non lo puoi mettere dentro? chi te lo impedisce?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Avevo fatto alcune prove con pessimi risultati... ma forse perché non ero convinto che si potesse fare. Adesso ci sono riuscito, grazie per l'aiuto!


    Così funziona.
    codice:
    Dim mail
    Set mail = CreateObject("CDO.Message")
    
    mail.From = "indirizzo@sito.it"
    mail.To = email
    mail.Subject = "Oggetto"
    
    mail.HTMLBody = ""I dati inseriti sono:
    " + nome + "
    " + cognome + "
    " + email + "
    
    Prodotti per i quali si desiderano ricevere maggiori informazioni: 
    " 
    
    FOR i = 0 TO UBOUND( localCart, 2 )
    IF localCart( CARTPID, i ) <> "" THEN
    sqlString = "SELECT * FROM accessori WHERE id=" & localCart(CARTPID, i )
    SET RS = Conn.Execute(sqlString)
    mail.HTMLBody = mail.HTMLBody + RS("codice") + "
    "
    RS.Close 
    Set RS=Nothing 
    END IF 
    NEXT
    
    mail.Fields("urn:schemas:httpmail:importance").Value = 1
    mail.Fields.Update()
    
    mail.Send()
    
    Set mail = Nothing

  8. #8
    se vuoi essere più veloce, visto che leggi solo 'codice' invece di

    sqlString = "SELECT * FROM accessori WHERE id=" & localCart(CARTPID, i )

    usa

    sqlString = "SELECT codice FROM accessori WHERE id=" & localCart(CARTPID, i )

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Grazie per il suggerimento.
    Con "*" vado a considerare tutti campi. Non so se alla fine considererò solo "codice" o anche altri campi ma, nel caso, li posso agguingere nella query.

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.