26 messaggi dal 30 agosto 2018
Buongiorno, sto creando una select dinamica con asp classic, ho preso spunto da questo topic quihttps://forum.aspitalia.com/forum/post/269206/Select-Dinamica.aspx, ma non riesco a farla funzionare, nel senso la variabile scelta viene inizializzata correttamente ogni volta che seleziono una categoria diversa, ma non ne vuole sapere di fare i controlli if per assegnare l'attributo selected all'option che l'utente ha selezionato.
<%scelta = request.form("categoria")%>
<form method="post">
  <div class="row">
    <div class="small-2 columns">
      <label for="CATEGORIA" class="right inline">SCEGLI UNA CATEGORIA:</label>
    </div>
          <div class="small-10 columns">
      <select name="categoria" onchange="this.form.submit();">
        <%categorie = "SELECT * FROM CATEGORIE ORDER BY CATEGORIA ASC"
        Set Tab = Server.CreateObject("ADODB.Recordset")
        Set Tab = ConnACCESS.Execute(categorie)
        if not Tab.eof then
          if scelta = empty then 
            selected = "selected"
          end if
          response.write("<option value='0' "&selected&">-- "&scelta&" --</option>")
          do while not Tab.eof
            if Tab("ID") = scelta then
              selected = "selected" 
            else
              selected = empty
            end if
            response.write("<option value='"&Tab("ID")&"' "&selected&">"&Tab("CATEGORIA")&"</option>")
          Tab.MoveNext
          loop
        end if%>
      </select>
    </div>
  </div>
</form>

Ringrazio anticipatamente
11.862 messaggi dal 09 febbraio 2002
Contributi
Ciao,
il pezzo di codice che hai postato sembra corretto. Stampa a video il valore della variabile scelta, verifica cosa vale.
<%
scelta = request.form("categoria")
Response.Write("Il valore di scelta è: " & scelta)
%>


Inoltre, puoi postare il codice HTML che viene prodotto dalla pagina ASP? È sufficiente il codice HTML della <select>. Lo puoi ottenere dal browser ad esempio facendo tasto destro sulla pagina -> Visualizza sorgente.

ciao,
Moreno

Enjoy learning and just keep making
26 messaggi dal 30 agosto 2018
Ciao, grazie della risposta gli assegnamenti alla variabile scelta sono giusti, poiché quando apro la pagina non vale niente e quando seleziono una option vale il valore della option, non riesco a capire perché non si selezioni la option e mi rimanga sempre selezionato seleziona una categoria, non riesco a capire perché ciò accada poiché nel codice che ho postato faccio fare un controllo che se scelta non vale niente la option scegli una categoria diventa selected ma resta sempre selected anche quando scelta vale qualcosa.
if scelta = empty then 
            selected = "selected"
          end if
          response.write("<option value='0' "&selected&">-- scegli una categoria --</option>")

Questo è l'HTML generato da quel pezzo di codice e ho scelto viti:
<form method="post">
      <div class="row">
        <div class="small-2 columns">
          <label for="SELEZIONE" class="right inline">SCEGLI UNA CATEGORIA:</label>
        </div>
        <div class="small-10 columns">
          <select name="categoria" onchange="this.form.submit();">
            <option value='0' >-- seleziona una categoria --</option><option value='3' >BULLONI</option><option value='4' >VITI</option>
          </select>
        </div>
      </div>
    </form>
    Il valore di scelta è: 4

Modificato da Thebest il 03 agosto 2019 23:57 -
11.862 messaggi dal 09 febbraio 2002
Contributi
Ciao,
ho provato a riprodurre il problema ma non riesco. A me funziona correttamente. È anche vero che ho semplificato il codice così per escludere il database:
<form method="post">
  <div class="row">
    <div class="small-2 columns">
      <label for="CATEGORIA" class="right inline">SCEGLI UNA CATEGORIA:</label>
    </div>
          <div class="small-10 columns">
      <select name="categoria" onchange="this.form.submit();">
        <%
          if scelta = empty then 
            selected = "selected"
          end if
          response.write("<option value='0' "&selected&">-- "&scelta&" --</option>")
          For i = 1 To 5
            if i = scelta then
              selected = "selected" 
            else
              selected = empty
            end if
            response.write("<option value='"&i&"' "&selected&">"&i&"</option>")
          Next
        %>
      </select>
    </div>
  </div>


Nel tuo caso potrebbe essere che la condizione If Tab("ID") = scelta Then dia sempre false, anche se non mi spiego il perché. Prova a mettere un casting a stringa.
if CStr(Tab("ID")) = scelta then


ciao,
Moreno

Enjoy learning and just keep making

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.