Una procedura per creare list box dinamiche

di Emanuele Brunazzetto, in Classic ASP, UserScript, Database,

Questa procedura ASP permette di creare una lista dinamica del tipo "SELECT", direttamente collegata al database.
Utilizzando una serie di parametri riusciamo a personalizzarla a nostro piacimento.

QUERY: indica la query di selezione, ad esempio "SELECT * FROM TAB_INDIRIZZI"
VALUE: rappresenta il valore delle singole voci della lista (OPTION VALUE="...")
ELEMENTO: il testo che viene visualizzato nelle singole opzioni
NOME: il nome della lista
MULTIPLA: se nullo sarà normale, altrimenti inserendo "multiple" verrà abilitata la lista multipla
ALTEZZA: quante righe della lista visualizzare
COD: indica di selezionare la voce che corrisponde a quel codice (VALUE)
VOCE_SELEZIONE: per aggiungere una voce iniziale che descrive le funzioni della lista (per es. "--Selezionare indirizzo")

Ecco un esempio di chiamata alla nostra procedura:

<%

lista("SELECT * FROM TAB_INDIRIZZI","id_settore","nome","lista_indirizzi","","1",1,"-Seleziona la persona")

sub lista(QUERY,VALUE,ELEMENTO,NOME,MULTIPLA,ALTEZZA,COD,VOCE_SELEZIONE)

  Set RS1 = Conn.Execute(QUERY)

  if RS1.EOF=false then
    response.write("<select size='" & ALTEZZA & "' name=" & NOME & " onChange='selezione(this.selectedIndex,this.options[this.selectedIndex].value,this.options[this.selectedIndex].text,this.name)'" & MULTIPLA & ">")

    if  VOCE_SELEZIONE<>"" then response.write("<option value='NULL'>" & VOCE_SELEZIONE & "</option>")

    Do While Not RS1.EOF
          IF RS1(VALUE) = Clng(COD) THEN
          response.write("<option value='" & RS1(VALUE) & "' selected> " &  RS1(ELEMENTO) & " </option>")
      ELSE
        response.write("<option value='" & RS1(VALUE) & "' > "&  RS1(ELEMENTO) & " </option>")
            END IF
      RS1.MoveNext()
    Loop

    response.write("</select>")

  else
    response.write("NON PRESENTE")
  end if

end sub

%>
<SCRIPT language="javascript">
[code lang="html"]<!--
    function selezione(I,V,T,NOME) {
    alert("l'indice è: " + I + ", il valore è: " + V + ", il testo è: " + T + ", il nome è: " + NOME)
    
    //Codice di controllo
  }
//-->
</SCRIPT>

Non è stata inserito nessun riferimento alla connessione del database, che rimane da aggiungere, utilizzando l'oggetto Conn come riferimento.
Si veda per maggiori informazioni
https://www.aspitalia.com/articoli/db/

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi