82 messaggi dal 04 ottobre 2007
quindi per cominciare andrebbe bene una funzione del genere?

http://www.mrwebmaster.it/javascript/inviare-dati-selectbox-asp-php-evento-onchange-javascript_7019.html

Grazie
82 messaggi dal 04 ottobre 2007
eccomi, ho seguito le tue indicazioni ed ora ho una select con i dati dei cambi presi dal db cosi come di seguito:

<%
    ' DEFINISCO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
    Dim sc, cn, rs, valuta, contatore
   valuta = Request.Form("valuta")
 
    ' DEFINISCO LA STRINGA DI CONNESSIONE
    sc = ""
    sc = sc & "driver={Microsoft Access Driver (*.mdb)};dbq="
    sc = sc & Server.MapPath("/mdb-database/ecom.mdb")

    ' IMPOSTO LA CONNESSIONE EDIL RECORDSET
    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
 
    ' APRO LA CONNESSIONE COL DATABASE
    cn.Open sc 

%>
          <form name="modulo">
              <select name="valuta" onChange='SelectPost()'>
                    <option value=""></option>
<%
    ' APRO IL RECORDSET
    rs.Open "SELECT * FROM cambio", cn, 1

    ' ESEGUO IL CICLO
    While rs.EOF = False 
%>
          <option value="<%=rs("currency")%>"
          <% if RS("currency")= RS("currency") then %>selected="selected"<%end if%>
          ><%=rs("currency")%> - <%=rs("rate")%></option>
<%
        rs.MoveNext

        ' INCREMENTO IL VALORE DEL CONTATORE
        contatore = contatore + 1
    Wend
%>
              </select>  
              </form>

<%
    ' UN PO DI PULIZIA...
    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
%>


Questo codice lo richiamo con un include in un'altra pagina dove ho questo script:

<script type="text/javascript">
function SelectPost()
{
    document.modulo.method = "post";
    document.modulo.action = "";
    document.modulo.submit();
}
</script>


Alla scelta di una delle voci dell'elenco mi ricarica la pagina correttamente e mi restituisce il valore scelto con

<%=valuta%>



Ora vorrei inserire questa valuta in una session così in ogni pagina del catalogo posso moltiplicarlo per il prezzo in euro e mostrare il cambio.
Non so nulla sulle session, ho letto qualche cosa ma non riesco a capire...
Come procedo?

Grazie

Inoltre:
perche se metto la select come sotto non mi fa rimanere il valore selezionato ma mi mette l'ultimo della lista?

<% if RS("currency")= RS("currency") then %>selected="selected"<%end if%>

Modificato da Partisan75 il 28 settembre 2013 16.40 -
279 messaggi dal 08 maggio 2001
Allora innanzitutto devi impostare


valuta = Request.Form("valuta")

'creo una variabile di sessione
Session("moneta") = valuta 



In secondo luogo non puoi creare una condizione abbinando il dato estratto da db.
La condizione la può realizzare invece impostando come segue:



    While rs.EOF = False 
    currency = RS("currency")
%>
          <option value="<%=rs("currency")%>"
          <% if valuta = currency  then %>selected<%end if%>">           
          <%=rs("currency")%> - <%=rs("rate")%></option>
<%
        rs.MoveNext

%>


Poi nelle altre pagine la session la richiami cosi

valuta = Session("valuta")
'la visualizzo a video 
response.write valuta

 


Comunque personalmente ritengo che un po di studio non ti farebbe malel
82 messaggi dal 04 ottobre 2007
Grazie mille, non vedo l'ora di provarlo, spero in serata.
Thanks
82 messaggi dal 04 ottobre 2007
Ciao e grazie ancora, quello che mi serve funziona ma 2 domande:

se provo come hai detto tu qui

    While rs.EOF = False 
    currency = RS("currency")
%>
          <option value="<%=rs("currency")%>"
          <% if valuta = currency  then %>selected<%end if%>">           
          <%=rs("currency")%> - <%=rs("rate")%></option>
<%
        rs.MoveNext
%>


Al posto di

    While rs.EOF = False 
%>
<option value="<%=rs("rate")%>"
<% if RS("currency")= RS("currency") then %>selected="selected"<%end if%>
><%=rs("currency")%> - <%=rs("rate")%></option>
<%
        rs.MoveNext

        ' INCREMENTO IL VALORE DEL CONTATORE
        contatore = contatore + 1
    Wend
%>


mi esce il seguente errore:

Errore di compilazione di Microsoft VBScript error '800a0400'
Prevista istruzione

currency = RS("currency")

e poi vorrei poter portare i due parametri ma separatamente
tipo così:

<option value="<%=rs("rate")%><%=rs("currency")%>"

perché con il primo moltiplico per il prezzo in euro ed ottengo il cambio e con il secondo esprimerei la valuta dell&#8217;importo uscito fuori dal cambio.
se lascio così escono entrambi ma uniti, perche ho scritto

valuta = Request.Form("valuta")


Grazie ancora
Modificato da Partisan75 il 02 ottobre 2013 21.56 -
82 messaggi dal 04 ottobre 2007
Mi rispondo da solo...
ho risolto il problema di portare sia la valuta che l'importo facendo semplicemente la select sull'ID

<option value="<%=rs("ID")%>"><%=rs("currency")%> - <%=rs("rate")%></option>


e dopo li richiamo così

<%
valuta = Session("moneta")

Dim SQLvaluta, RSvaluta

SQLvaluta = " SELECT * FROM cambio WHERE id = " & valuta
Set RSvaluta = Conn.Execute(SQLvaluta)
%>


sono riuscito ad utilizzare la session per portare la valuta scelta anche nelle altre pagine però se ritorno nella homepage del sito, pagina in cui ho inserito la select, perdo la scelta fatta...

Come mi consigliate di risolvere?

dovrei fare una cosa tipo questa ma non va:

  'creo una variabile di sessione
  Session("moneta") = valuta


<option value="<%=rs("ID")%>"
<% if rs("ID")= valuta then %>selected="selected"<%end if%>
><%=rs("currency")%> - <%=rs("rate")%></option>

Modificato da Partisan75 il 04 ottobre 2013 19.32 -
82 messaggi dal 04 ottobre 2007
ho pensato di far fare la scelta in una popup e la cosa funziona però vorrei che dopo aver selezionato dal menù a tendina mi si chiudesse la finestra popup ricaricano la pagina del sito da dove è stato lanciato il popup
ho trovato un milione di esempi su google ma nessuno mi funziona...

credo che questo sia il codice da modificare:


<script type="text/javascript">
function SelectPost()
{
    document.modulo.method = "post";
    document.modulo.action = "";
    document.modulo.submit();
}
</script>



grazie in anticipo
Modificato da Partisan75 il 05 ottobre 2013 22.02 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.