Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    32

    asp session. prende in considerazione l'ultimo valore dato alla session in lista

    ciao a tutti,
    ho un problema con la Session di Asp.
    nel mio sito ho una pagina di invio mail dal sito gestita con un form, nella input "oggetto" ho aperto una value=<%session%> che da valore all'oggetto a seconda del pulsante su cui clicco in un'altra pagina del sito.
    ad esempio se clicco nella pagina prodotti.asp sul pulsante "richiedi info" di un determinato prodotto lui mi valorizza la input oggetto della pagina inviomail.asp con un determinato valore assegnato a quel prodotto.

    il mio problema è: dopo aver cliccato sul pulsante di un prodotto nella pagina prodotti.asp, nell'oggetto della pagina inviomail.asp mi visualizza l'ultimo valore assegnato tramite la session all'ultimo prodotto in lista, non considerando mai i precedenti prodotti.

    pagina inviomail.asp:
    codice:
    <td width="30%" height="30" align="left">
     <label>OGGETTO:</label> 
    </td> 
    <td width="50%"> 
    <input type="text" name="oggetto" size="30" maxlength="30" value="<%=session("oggetto")%>"/>
     <%session("oggetto")=""%> 
    </td>

    pagina prodotti.asp:
    codice:
     
    <table width="100%" border="0px" cellspacing="0" align="center"> 
    <tr> 
    ....
    <a href="inviomail.asp"> 
    <form name="1">
    <input name="tasto1" type="button" value="richiedi info" class="bottoneprodotti" onclick="<%session("oggetto")="prodotto1"%>"/> 
    </a> 
    </form> 
    </tr> 
    </table>
    
     
    <table width="100%" border="0px" cellspacing="0" align="center"> 
    <tr> 
    ....
    <a href="inviomail.asp"> 
    <form name="2">
    <input name="tasto2" type="button" value="richiedi info" class="bottoneprodotti" onclick="<%session("oggetto")="prodotto2"%>"/> 
    </a> 
    </form> 
    </tr> 
    </table>
    in questo modo pur cliccando sul tasto del prodotto1, in oggetto della mail mi scriverà "prodotto2"
    veronica

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ovviamente è così.
    La valorizzazione è lato server, non è influenzata da ciò che clicchi. La session è valorizzata a prescindere ed essendo sequenziale prende l'ultimo valore.
    Invece di usare la session, visto che hai di fatto due form, usa un campo hidden (per ogni form).

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    32
    scusami ma non ho idea di come posso utilizzare la hidden al posto della session,
    stavo dando un'occhiata su internet e mi sembra di aver capito che serve per nascondere dei campi.
    veronica

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Esatto.
    <input type="hidden" name="oggetto" value="richiedi info" />

    e l'altro form:
    <input type="hidden" name="oggetto" value="quello che ti pare" />

    Nella pagina di destinazione recuperi il valore del campo e ci fai quello che vuoi:

    oggetto = request.form("oggetto")

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    32
    scusami,
    però in questo modo io non visualizzo più il pulsante per inviare le e-mail.

    io ho provando inserendo il codice così:

    pagina prodotti.asp
    codice:
    <form name="1">
     <a href="inviomail.asp"> 
    <input type="hidden" name="oggetto" value="richiedi info" class="bottoneprodotti"/> 
    </a> 
    </form>

    e poi sicuramente sbagliando:

    codice:
    ...prima del form
    <oggetto = request.form("oggetto")>
    ....
    
    <td width="30%" height="30" align="left"> 
    <label>OGGETTO:
    </label> 
    </td> 
    <td width="50%"> 
    <input type="hidden" name="oggetto" value="" /> 
     
     </td> 
    <td width="10%">
    veronica

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il campo HIDDEN è da aggiungere al tuo pulsante... non devi farne una commistione...
    Il pulsante originale rimane ma non passa alcun testo, puoi trasformarlo in un SUBMIT se vuoi.

    Roby

  7. #7

    Re: asp session. prende in considerazione l'ultimo valore dato alla session in lista

    sarebbe:
    codice:
    <form action="inviomail.asp" method="post">
        <input type="submit" value="richiedi info" class="bottoneprodotti" />
        <input type="hidden" name="oggetto" value="oggetto del prodotto1" class="bottoneprodotti"/>
    </form>
    
    <form action="inviomail.asp" method="post">
        <input type="submit" value="richiedi info" class="bottoneprodotti" />
        <input type="hidden" name="oggetto" value="oggetto del prodotto2" class="bottoneprodotti"/>
    </form>
    Quindi in inviomail.asp ricaveresti l'oggetto con Request.Form("oggetto")

    oppure:

    codice:
    <form action="inviomail.asp?oggetto=oggetto del prodotto 1" method="post">
        <input type="submit" value="richiedi info" class="bottoneprodotti" />
    </form>
    
    <form action="inviomail.asp?oggetto=oggetto del prodotto 2" method="post">
        <input type="submit" value="richiedi info" class="bottoneprodotti" />
    </form>
    ed in inviomail.asp leggi l'oggetto tramite Request.Querystring("oggetto")

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    32
    ah ok perfetto, funziona tutto!
    grazie mille!
    veronica

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.