Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    input popolati da scelta select

    Ciao a tutti,
    ho provato a cercare un po', ma ho trovato una cosa simile solo per select-select.

    Allora ho un form, all'inizio una select con varie voci (recuperate da un db access), quando l'utente sceglie dalla select, in automatico si dovrebbero popolare 5 campi input (type=text), posti nello stesso form, con i valori già presenti nel db e in modo da permettere all'utente di modificarli.

    Grazie

    Alessandro

  2. #2

    Re: input popolati da scelta select

    Originariamente inviato da dydale
    Ciao a tutti,
    ho provato a cercare un po', ma ho trovato una cosa simile solo per select-select.

    Allora ho un form, all'inizio una select con varie voci (recuperate da un db access), quando l'utente sceglie dalla select, in automatico si dovrebbero popolare 5 campi input (type=text), posti nello stesso form, con i valori già presenti nel db e in modo da permettere all'utente di modificarli.

    Grazie

    Alessandro
    Direi che riguarda javascirpt dato che l'evento onselect non è ASP.

  3. #3
    Per i moderatori:
    potete spostarmi questo 3d in "scripting"?

    Grazie

    Alessandro

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono vari interventi nel forum (prova a fare una ricerca), ma non so se sono dello stesso tipo di quello da te chiesto.

    Per scrivere in un campo testo:
    document.NMEFORM.NOMECAMPO.value = "cosa vuoi scrivere";

    nel tuo caso e` piu` semplice che popolare una select.

    Io proporrei che dovresti avere una matrice con tutti valori che vouoi scrivere nei 5 campi per ogni valore della select:
    codice:
    <head>
    <title>...</title>
    <script type="text/javascript">
    
    var matrice = new Array();
    matrice[0] = new Array();
    matrice[0][0] = "pippo";
    matrice[0][1] = "topolino";
    matrice[0][2] = "qui";
    matrice[0][3] = "quo";
    matrice[0][4] = "qua";
    
    matrice[1] = new Array();
    matrice[1][0] = "clarabella";
    matrice[1][1] = "minnie";
    matrice[1][2] = "emi";
    matrice[1][3] = "edi";
    matrice[1][4] = "eli";
    ...
    
    function riempi(ss) {
      var n = ss.selectedIndex-1;
      ss.form.primo.value = matrice[n][0];
      ss.form.secondo.value = matrice[n][1];
      ss.form.terzo.value = matrice[n][2];
      ss.form.quarto.value = matrice[n][3];
      ss.form.quinto.value = matrice[n][4];
    }
    </script>
    <head>
    <body>
    <form ...>
    <select onchange="riempi(this);">
      <option value="">scegli una opzione</option>
      <option value="maschi">maschi</option>
      <option value="femmine">femmine</option>
      ...
    </select>
    
    <input name="primo" value="">
    <input name="secondo" value="">
    <input name="terzo" value="">
    <input name="quarto" value="">
    <input name="quinto" value="">
    </form>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Grazie per la risposta, ma non ho capito (e forse mi sono spiegato male).

    Allora: ho un db in cui ho i valori della select. Quando l'utente seleziona una opzione di questa select, i campi input presenti nel resto del form dovrebbero essere popolati con altri dati estratti dal db (filtrati in base alla scelta fatta nella select). Per questo non so come creare la matrice.

    PS: Ho cercato sia in scripting, sia in asp ma non ho trovato niente.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    La matrice la devi scaricare subito dal DB, altrimenti devi ricaricare la pagina.

    In pratica il JS deve conoscere tutti i valori da scrivere nei campi SUBITO.

    Esempio (con ASP - per dati alfanumerici):
    matrice[0][0] = "<%=matr1(1)%>";
    matrice[0][1] = "<%=matr1(2)%>";
    ...

    Si puo` anche inserire in un loop, ma io non conosco come e` fatto il tuo DB ne` il tuo programma sul server.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Ieri ho provato per tutto il pomeriggio, ma non sono riuscito a farlo funzionare. In pratica non so come fare a creare le matrici (non so quante sono, per cui dovrei inserirle in un loop). Di seguito il codice (che mi funziona, naturalmente, solo per il primo record).

    codice:
    <%@ language = vbscript%> 
    <% 
    set con=server.createobject("ADODB.Connection") 
    con.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("db1.mdb") 
    
    sql="select * from [Tabella1]"
    set rs=con.execute(sql)
    campoa=rs("campo1")
    campob=rs("campo2")
    campoc=rs("campo3")
    campod=rs("campo4")
    campoe=rs("campo5")
    campof=rs("campo6")
    %>
    <head>
    
    <script type="text/javascript">
    <!-- Begin
    var matrice = new Array();
    matrice[0] = new Array();
    matrice[0][0] = "<%=campoa%>";
    matrice[0][1] = "<%=campob%>";
    matrice[0][2] = "<%=campoc%>";
    matrice[0][3] = "<%=campod%>";
    matrice[0][4] = "<%=campoe%>";
    matrice[0][5] = "<%=campof%>";
    
    function riempi(ss) {
    var n = ss.selectedIndex-1;
    ss.form.f1.value = matrice[n][0];
    ss.form.f2.value = matrice[n][1];
    ss.form.f3.value = matrice[n][2];
    ss.form.f4.value = matrice[n][3];
    ss.form.f5.value = matrice[n][4];
    ss.form.f6.value = matrice[n][5];
    }
    //  End -->
    </script>
    
    
    <head><title>Form</title>
    
    
    <link rel="stylesheet" type="text/css" href="style.css">
    <table width=100% height=100% cellpadding=0 cellspacing=0>
    <tr><td width=600 valign=top><img src=logo.jpg><table border=0 width=98% cellpadding=4><tr><td></td></tr><tr><td>
    <body>
    <form>
    <select onchange="riempi(this);">
      <option value="">scegli una opzione</option>
      <%
      do while not rs.eof%>
      <option value="
      <%=rs("campog")%>"><%=rs("campog")%>
      <%
    
      rs.movenext
    loop
    %>  
      </option>
    </select>
    
    <input name="f1" value="" size="20">
    
    <input name="f2" value="" size="20">
    
    <input name="f3" value="" size="20">
    
    <input name="f4" value="" size="20">
    
    <input name="f5" value="" size="20">
    
    <input name="f6" value="" size="20">
    
    </form>
    
    </td></tr></table></td>
    <td bgcolor="#99ccff"></td></tr></table>

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Certo che devi inserire in un loop.

    Ti scrivo la struttura logica, ma non conosco la sintassi VBS, per cui devi sistemartela tu.
    codice:
    ...
    <head>
    ...
    <script ...>
    var matrice = new Array();
    // loop inizializzazione matrice
    <%
      loop (varibile i)
        echo "matrice["&i-1&"] = new Array();"
        loop (variabile j)
          echo "matrice["&j-1&] = '"&rs("campoi-j")&"';"
        endloop(j)
      endloop(i)
    %>
    
    function ...
    ...
    </script>
    Non so se sono riuscito a spiegarmi.
    Altrimenti vedi esempi di script in ASP-VBS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10

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.