Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135

    Selezioni multiple in select asp

    Ciao, ho una select che si popola prendendo i dati da un db access; è possibile dalla stessa select prevedere la possibiltà di selezionare più voci (selezione multipla)?
    Se è possibile come recupero il contenuto della select che nella pagina asp che processa i dati?
    codice:
      <select size="1" name="personale" style="font-size: 8 pt; font-family: Verdana">
                    <option>Seleziona Personale</option>
                    <%             
    
    'FACCIO POPOLARE LA PRIMA SELECT  
    
    if (request.cookies("innovatel.it_accesso")("nome")) <> 22 then
    sql = "SELECT * FROM programma_personale INNER JOIN tUtenti_Unita ON tUtenti_Unita.unita_id = programma_personale.id_uoat WHERE tUtenti_Unita.utente_id = "& request.cookies("innovatel.it_accesso")("nome") &" ORDER BY programma_personale.ID asc"            
    Set rec = Server.CreateObject("ADODB.Recordset")
    rec.Open sql, cn, 3, 3
    Do While Not rec.EOF
    strVAR = rec("unita_id")
    %>
    <option	value="<%=rec.Fields.Item("personale").Value%>"
    <% 	if personale = cstr(strVar) then response.write("selected") end if%>>
    <%= rec.Fields.Item("personale").Value%></option>	
    <%
    rec.MoveNext
    Loop
    else 
    sql = "SELECT * FROM programma_personale ORDER BY id asc" 
    Set rec = Server.CreateObject("ADODB.Recordset")
    rec.Open sql, cn, 3, 3
    Do While Not rec.EOF
    strVAR = rec("id")
    %>
    <option	value="<%=rec.Fields.Item("personale").Value%>"
    <% 	if personale = cstr(strVar) then response.write("selected") end if%>>
    <%= rec.Fields.Item("personale").Value%></option>	
    <%
    rec.MoveNext
    Loop
    end if
    rec.Close
    set rec = Nothing
    %>
    
                  </select>

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ciao [trodat],

    per fare una combo con selezione multipla basta aggiungere il parametro multiple
    codice:
    <select size="1" name="personale" style="font-size: 8 pt; font-family: Verdana" multiple>
    per recuperare il valore col request:
    se fai un Response.Write Request.Form("personale") avrai i valori delle option selezionate separati da , (virgola e spazio)
    oppure puoi fare
    codice:
    if Request.Form<>"" then
    	for each item in Request.Form("personale")
    		Response.Write item & "
    "
    	next
    end if

  3. #3
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    Grazie mille!

  4. #4
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    scusa ho un problema... dal form multiplo recupero i seguenti dati:
    codice:
    1-ANGELO, 2-ANTONIO, 3-CAMANI, 4-CAMPANA
    devo fare lo split dividendo l'id dal nome ed ho scritto così:
    codice:
    'SPLIT DEL VALORE PERSONALE
    DIM ARR_DALFORM_personale
    ARR_DALFORM_personale = split(personale, "-")
    personale0 = ARR_DALFORM_personale(0)
    response.write personale0 &"
    "
    personale1 = ARR_DALFORM_personale(1)
    response.write personale1 &"
    "
    ma ottengo:
    codice:
    1
    ANGELO, 2
    dove sbaglio???? :master:

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    devi prima splittare su ", " e poi su "-"
    codice:
    personale = "1-ANGELO, 2-ANTONIO, 3-CAMANI, 4-CAMPANA"
    arrPer = Split(personale,", ")
    for i=LBound(arrPer) to UBound(arrPer)
      arr = Split(arrPer(i),"-")
      response.write arr(0) & "-->" & arr(1) & "
    "
    next

  6. #6
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    ok grazie, ma se dovessi inserire i valori splittati in un dbase con una sql insert into, insieme ad altri valori che non splitto, la sql dove va posizionata, all'interno del ciclo for... next? :master:

    perchè scrivendo così, prende solo l'ultimo dei valori splittati:
    codice:
    arrPer = Split(personale,", ")
    for i=LBound(arrPer) to UBound(arrPer)
      arr = Split(arrPer(i),"-")
      response.write arr(0) & "
    "
      response.write arr(1) & "
    "
    next
    
    INSERT INTO programma(id_uoat, uoat, id_personale, personale) VALUES (1, 'AQ', '4', 'CAMPANA')

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    se devi inserire tutti i valori nel db devi eseguire una insert ad ogni ciclo
    codice:
    arrPer = Split(personale,", ")
    for i=LBound(arrPer) to UBound(arrPer)
      arr = Split(arrPer(i),"-")
      response.write arr(0) & "
    "
      response.write arr(1) & "
    "
      sql = "INSERT INTO programma(id_uoat, uoat, id_personale, personale) VALUES (1, 'AQ', '" & arr(0) & "', '" & Replace(arr(1),"'","''") & "')"
      TuaConnessione.Execute sql
    next
    (io ho seguito quello che hai scritto tu... ma id_personale è veramente una stringa?)

  8. #8
    Utente di HTML.it L'avatar di [trodat]
    Registrato dal
    Oct 2004
    Messaggi
    2,135
    ok adesso va bene, grazie.
    PS = id_personale è numerico non è stringa... ho corretto la svista.

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.