18 messaggi dal 20 agosto 2018
Salve, ho un menu dove l'utente sceglie quale categoria di prodotti tra una serie di prodotti vuole visualizzare es.tavoli e poi collego ad una pagina aziende dove sono contenute le aziende produttrici di tavoli, quindi l'utente sceglie l'azienda che vuole visualizzare e viene collegato alla pagina tavoli.asp contenente tutti i tavoli dell'azienda selezionata presenti sul db.
Uso una variabile session, ma non riesco a capire come assegnare il prodotto quando il pulsante contenente il prodotto scelto viene premuto.
Uso asp classic.
10.957 messaggi dal 09 febbraio 2002
Contributi
Ciao,
puoi passare delle informazioni in query string o via form, a seconda della tua esigenza.

Supponiamo che il tuo bottone serva a prenotare un tavolo. Lo puoi disporre in un form così:

<h2>Tavolo in mogano</h2>
<p>Questo tavolo è pregiatissimo.</p>
<form action="ordina.asp" method="post">
 <input type="hidden" name="id" value="<%= idDelTavolo %>" />
 <button type="submit">Ordina ora</button>
</form>


Quando clicchi il bottone "Ordina ora", il browser eseguirà una richiesta POST alla pagina "ordina.asp" inviandole la chiave "id" nel corpo della richiesta.

Dalla pagina ordina.asp puoi recuperare tale id scrivendo:
Dim id
id = Request.Form("id")
'E qui procedi ad aggiungere il tavolo al carrello dell'utente.


ciao,
Moreno

Enjoy learning and just keep making
18 messaggi dal 20 agosto 2018
Ciao, scusa, ma sono molto impegnato in questo ultimo periodo. Grazie per la tua risposta, ma non è proprio quello che mi serve, devo creare un catalogo prodotti solo per farli vedere.
Ti spiego: dal menu principale quando clicco il bottone prodotti mi indirizza alla pagina prodotti.asp, dove ci sono bottoni per scegliere la categoria di prodotti, che in base alla scelta viene memorizzata in una variabile session, poi dopodichè (mettiamo caso che i prodotti scelti da visualizzare siano lampade) si passa alla pagina prodotti/lampade.asp, dove (grazie alla variabile session) vengono visualizzate tutte le aziende che producono lampade presenti nel database, quindi il cliente sceglie l'azienda che più gli piace e viene memorizzata in un altra variabile session (aziende). A questo punto si finisce in una pagina prodotti/lampade/nomeazienda.asp dove si visualizzano tutte le lampade dell'azienda scelta.
<%if (session("prodotto") = "lampade") then%>
     <a href="/prodotti/lampade.asp" class="button link_interno">
  <%if (session("lingua") ="it") then%>LAMPADE <%end if%>
  <%if (session("lingua") ="en") then%>LAMPS   <%end if%>
  <%if (session("lingua") ="de") then%>LAMPEN  <%end if%>
  <%if (session("lingua") ="es") then%>LAMPARAS<%end if%>
     </a>
<%end if%>
<a href="prodotti.asp?lang=session(lingua_lucastudio&product=lampade">
   <div id="id_lampade_div" class="medium-3 small-3 columns">
  <a id="id_lampade" href="/prodotti/lampade.asp" class="button link_interno">
      <%if (session("lingua") ="it") then%>LAMPADE <%end if%>
      <%if (session("lingua") ="en") then%>LAMPS   <%end if%>
      <%if (session("lingua") ="de") then%>LAMPEN  <%end if%>
      <%if (session("lingua") ="es") then%>LAMPARAS<%end if%>
  </a>
    </div>
</a>

Grazie in anticipo
Max
Modificato da Maxvilander il 05 ottobre 2018 22.51 -
10.957 messaggi dal 09 febbraio 2002
Contributi
Ciao,
ok, quindi dov'è l'intoppo?


mi indirizza alla pagina prodotti.asp, dove ci sono bottoni per scegliere la categoria di prodotti, che in base alla scelta viene memorizzata in una variabile session

Evita le variabili session come la peste perché non permetteranno ai tuoi utenti di condividere facilmente la pagina che stanno vedendo. Invece, dalla pagina prodotti.asp, quando vuoi navigare verso una specifica categoria di oggetti (es. lampade), predisponi un link come il seguente:
<a href="prodotti.asp?categoria=4">Lampade</a>


Questo ricaricherà la pagina prodotti.asp fornendo un parametro id che identifica le lampade (supponendo che nel tuo database la categoria delle lampade sia identificata dall'id 4). Grazie a questo parametro, avrai la possibilità di filtrare l'elenco iniziale e visualizzare solo un sottoinsieme di prodotti.

A questo punto, se vuoi filtrare l'elenco per produttore, predisponi un ulteriore link come il seguente:
<a href="prodotti.asp?categoria=4&produttore=12">Produttore ABC</a>


La pagina prodotti.asp si ricaricherà di nuovo e questa volta filtrerà l'elenco sia per categoria che per produttore.

Dalla pagina prodotti.asp puoi recuperare i parametri "categoria" e "produttore" con questo codice:
Dim categoria
categoria = Request.QueryString("categoria")

Dim produttore
produttore = Request.QueryString("produttore")


E poi usi i loro valori nelle clausole WHERE della query che estrae i prodotti dal database.

ciao,
Moreno

Enjoy learning and just keep making
18 messaggi dal 20 agosto 2018
Ciao, ho fatto come mi hai detto tu, ed effettivamente mi hai semplificato la vita.
Ora sorge un altro problema per cui sto diventando pazzo: nella pagina aziende di fianco al bottone dell'azienda c'è una breve descrizione, il problema è che mi restituisce il seguente errore:
Microsoft Access Database Engine error '80040e10'
No value given for one or more required parameters.
/prodotti1.asp, line 267
quindi vado alla linea 267:
Set T_Tab = ConnACCESS.Execute(stringa)

e quindi vado alla stringa:
stringa = "SELECT DESCRIZIONE  FROM AZIENDE WHERE CATEGORIA="& categoria &" AND ATTIVO = 1 ORDER BY ORDINE ASC"

il problema è che non capisco cosa c'è che non va, ho provato a modificare tutti i parametri, ma mi da sempre lo stesso errore.
Grazie
Max
10.957 messaggi dal 09 febbraio 2002
Contributi
Ciao Max,
probabilmente la variabile categoria è vuota. Puoi verificare che sia questo il caso facendo un Response.Write che ti mostrerà come è stata composta la query:
stringa = "SELECT DESCRIZIONE  FROM AZIENDE WHERE CATEGORIA="& categoria &" AND ATTIVO = 1 ORDER BY ORDINE ASC"
Response.Write stringa


Se effettivamente scopri che è vuota, forse è perché l'utente non ha ancora selezionato la categoria. In questo caso non dovresti aggiungere il relativo filtro nella WHERE.

ciao,
Moreno

Enjoy learning and just keep making
18 messaggi dal 20 agosto 2018
Ho scoperto di avere messo la variabile sbagliata.
Grazie comunque.
Max

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.