Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Checkbox in ciclo for

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    142

    Checkbox in ciclo for

    Ciao a tutti, ho creato un form con all'interno un ciclo for che crea vari tag (select, radio), tra cui anche dei checkbox! Il problema è il seguente:

    checkbox 1 (non spuntato)
    checkbox 2 (non spuntato)
    checkbox 3 (spuntato)
    checkbox 4 (non spuntato)
    checkbox 5 (spuntato)

    quando i dati vengono ricevuti ed elaborati da:

    for each item in request.Form
    temp = Request.Form(Item)
    temp2(i)=temp
    next

    il risultato è il seguente:

    checkbox 1 (spuntato)
    checkbox 2 (spuntato)
    checkbox 3 (non spuntato)
    checkbox 4 (non spuntato)
    checkbox 5 (non spuntato)

    questo è il codice:


    <form method="post" target="_blank">
    <%for i=0 to 10%>
    <input type="checkbox" id="stile1<%=i%>" name="stile1<%=i%>" value="bold">

    <%next%>



    <input type="submit" value="invia">
    </form>


    credo che questo dipenda dal fatto che il checkbox 4 (per esempio) viene inserito nella prima posizione libera di temp2(i), che non è la 4 come vorrei che fosse! Questo perchè evidentemente i check non spuntati vengono ignorati e quindi non memorizzati nell'array e le posizioni vengono scalate. Avete idea di come risolvere il problema, per favore? Non so cos'altro inventarmi!!!!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    142
    nessuno sa darmi una risposta per favore?

  3. #3
    già, se il checkbox non è spuntato, non viene inviato al server.
    Devi controllare l'esistenza di ogni checkbox, esplicitamente.
    per esempio :
    codice:
    If Request.Form("checkbox_1") <> "" Then
    valore_1 = "Spuntato" 'o Request.Form("checkbox_1")
    Else
    valore_1 = "Non spuntato"
    End If
    Ciau!
    - Dean

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    142
    Ho modificato il codice in questo modo:

    for each item in request.Form
    if request.Form("stile1"&i)="" then
    temp2(i)="S_nospuntato"

    end if
    if request.Form("stile1"&i)<>"" then
    temp2(i)="S_bold"

    end if

    if request.Form(Item)<>"S_nospuntato" OR request.Form(item)<>"S_bold" then
    temp = Request.Form(Item)
    temp2(i)=temp
    end if
    i=i+1

    next



    ma il risultato è identico a prima, non so come fare!!!!!!!

  5. #5
    Prova così (non ho controllato, scritto al volo):
    codice:
    ' mettiamo caso che hai 30 checkbox con nome checkbox_0, checkbox_1, ..., checkbox_29
    ReDim temp2(30) ' array
    For I = 0 To 29
    If Request.Form("checkbox_" & I) <> "" Then
    temp2(I) = "Spuntato"
    Else
    temp2(I) = "Non spuntato"
    End If
    Next
    Dovrebbe andare!

    Ciau!
    - Dean

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    142
    Non vedo differenze da quello che ho modificato e che non funziona! il problema è che devo utilizzare per forza la:

    for each item in request.form
    ....
    next


    per recuperare i dati dal ciclo for all'interno della form!!!! Help

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    142
    ho risolto! Ho dovuto aggiungere un array che memorizzasse la posizione del checkbox spuntato:

    for each item in request.Form
    if request.Form("stile1"&i)="" then
    temp2(i)="S_nospuntato"

    end if
    if request.Form("stile1"&i)<>"" then
    temp2(i)="S_bold"
    indice(w)=i
    end if

    if request.Form(Item)<>"S_nospuntato" OR request.Form(item)<>"S_bold" then
    temp = Request.Form(Item)
    temp2(i)=temp
    end if
    i=i+1
    w=w+1
    next

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.