Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    339

    Impostare valore di una checkbox quando non è selezionata

    Ciao a tutti.

    Non riesco a capire come impostare il valore di una checkbox quando non è selezionata.
    Cioè se io inserisco questo codice :
    codice:
    <input  type="checkbox" name="InPromoM" value="1">
    La checkbox vale 1 se è spuntata e "null" se non è spuntata.

    Se volessi farla valere 0 anzichè "null" quando non è spuntata? Come faccio?

    Grazie

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, di norma i checkbox non spuntati non sono presi in considerazione al submit di un form. Se per ipotesi si impostasse il valore tramite JavaScript prima di eseguire il submit (cioè 0 per il checkbox non spuntato o 1 se spuntato), il risultato sarebbe identico perché otterresti comunque un valore null per il fatto che il dato non sarà proprio inviato.

    Se il tuo intento è quello di ottenere il valore 0 quando vai a processare, lato server, i dati del form (come presumo tu stia cercando di fare), puoi risolvere in due o tre modi (e probabilmente anche vari altri).

    1) Il valore null lo ottieni perché quella variabile (relativa al checkbox) in sostanza non esiste. Nel tuo script lato server ti basterà una condizione per verificare se ottieni un valore null (per cui il checkbox non è stato spuntato) e agire di conseguenza. Puoi gestire la cosa usando una semplice variabile a cui attribuisci il valore del dato relativo al checkbox oppure, se quello è null, il valore 0. Quindi usare quella variabile per il tuo scopo finale (ad esempio inserirne il valore dentro un database).

    2) Nel tuo form, metti un campo hidden prima del checkbox, impostagli il valore 0 e assegnagli lo stesso name del checkbox. Questo fa in modo di considerare tale valore (del campo hidden) quando il checkbox non è spuntato, o viceversa il valore del checkbox quando questo è spuntato.
    codice:
    <input type="hidden" name="InPromoM" value="0">
    <input type="checkbox" name="InPromoM" value="1">
    3) Analogamente puoi usare due input radio, dove specificare i due valori 0 e 1, costringendo quindi l'utente a selezionare uno tra quei due valori:
    codice:
    <label><input type="radio" name="InPromoM" value="0" checked>0</label><br>
    <label><input type="radio" name="InPromoM" value="1">1</label>
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Scusa KillerWorm ma io ho provato a fare come dici te e cioè a inserire nella mia form la seguente riga:
    <input type="hidden" name="Convocato" value="0">
    <input type="checkbox" size="3" name="Convocato" value="1" checked="checked">
    Ma il risultato è che comunque sia mi inserisce sempre lo 0 prima dell'effettivo valore della checkbox, salvo quando metto deselected nella checkbox

    Grazie
    Chi Crede in Me non Perirà MAI

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    A me non risulta
    Mancano comunque indicazioni per comprendere dove sta il problema.
    Ma il risultato è che comunque sia mi inserisce sempre lo 0 prima dell'effettivo valore della checkbox
    Tieni conto che, non avendo altre informazioni, ho dedotto si trattasse di processare i dati attraverso uno script lato server, come PHP. Infatti in quel caso si riscontra il problema descritto da Markus85.

    Ma tu in quale ambito riscontri tale problema?
    E' un risultato che ottieni processando i dati lato server?
    Lo ottieni verificando in qualche modo con JavaScript/jQuery?

    In che senso "inserisce sempre lo 0 prima dell'effettivo valore della checkbox"?
    Cosa intendi per effettivo valore?
    E' una cosa che vedi sulla pagina HTML?
    ... non capisco

    salvo quando metto deselected nella checkbox
    In che senso metti "deselected"?
    Conosco gli attributi "disabled", "checked" e "selected" (che si usa comunque sui tag <option>), ma "deselected" mi sfugge.

    Puoi essere più preciso?
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Si scusami sono stato troppo impulsivo.
    Uso ASP classic
    Allora la pagina con la form è la seguente:
    <form action="convocazioni3.asp" method="post" name="form1">
    <tr>
    <%
    i = 0
    rsAnag.movefirst
    x = rsAnag.recordcount
    do while not rsAnag.eof
    For i = 1 to x%>
    <td></td>
    <td><input type="text" name="Maglia" size="1" maxlength="2" class="casellaMaglia" onKeyUp="controllaMaglia()"></td>
    <td><label class="label" type="text" size="8" name="Nome"><%=rsAnag.Fields.Item("Nome").Value%></label></td>
    <td><label class="label" type="text" size="10" name="Cognome"><%=rsAnag.Fields.Item("Cognome").Va lue%></label></td>
    <td align="center">
    <label class="label">
    <input type="radio" name="RadioGroup<%=x%>" value="0" id="RadioGroup_0">
    No</label>
    <label class="label">
    <input type="radio" name="RadioGroup<%=x%>" value="1" id="RadioGroup_1" checked="checked">
    Si</label>
    <%rsAnag.movenext
    x = x - 1
    next
    loop%>
    Poi Submit

    La pagina del post é:
    Set cn1 = Server.CreateObject("ADODB.Connection")
    cn1.Open strConn

    Dat = request.Form("DataItalia")
    Giorno = Mid(Dat, 1, 2)
    Mese = Mid(Dat, 4, 2)
    Anno = Mid(Dat, 7, 4)
    DataAmerica = Mese&"/"&Giorno&"/"&Anno

    no = replace(request.form("Nome"), "'", "''")
    co = Replace(Request.Form("Cognome"), "'", "''")
    motivo = request.Form("Motivo")
    if request.Form("Maglia") <> "" then
    Maglia = request.Form("Maglia")
    else
    Maglia = ""
    end if


    DivisioneNome = split(no,",")
    DivisioneCognome = split(co,",")
    DivisioneMotivo = split(motivo,",")
    DivisioneMaglia = split(Maglia,",")
    Numero = left(request.Form("serie"),instr(request.Form("ser ie"),",")-1)

    for y = 1 to Numero
    if request.Form("RadioGroup") & Numero = "0" then
    Convocato = "0"
    sql0 = "INSERT INTO T_Convocazioni"&session("StagioneAttuale")&" ( Convocato) " &_
    "VALUES ( '" & trim(Convocato) & "')"
    cn1.Execute sql0
    elseif request.Form("RadioGroup") & Numero = "1" then
    Convocato = "1"
    sql1 = "INSERT INTO T_Convocazioni"&session("StagioneAttuale")&" ( Convocato) " &_
    "VALUES ( '" & trim(Convocato) & "')"
    cn1.Execute sql1
    end if
    Numero = Numero - 1
    next

    For i = LBound(DivisioneNome) to UBound(DivisioneNome)
    sql2 = "INSERT INTO T_Convocazioni"&session("StagioneAttuale")&" ( Nome, Cognome, Categoria, Avversario, DataConvocazione, LuogoRitrovo, LuogoPartita, OraRitrovo, OraPartita, Accompagnatore, Ufficiale, Medico, Massaggiatore, Allenatore, Maglia) " &_
    "VALUES ( '" & trim(DivisioneNome(i)) & "','" & trim(DivisioneCognome(i)) & "','" & Session("categoria") & "','" & Session("chi1") & "',#" & DataAmerica & "#,'" & Session("dove1") & "','" & Session("dovepartita1") & "','" & Session("quando") & "','" & Session("quandopartita") & "','" & Session("Acco1") & "','" & Session("Uff1") & "','" & Session("Med1") & "','" & Session("Mas1") & "','" & Session("All1") & "','" & trim(DivisioneMaglia(i)) & "')"
    cn1.Execute sql2
    next
    Chi Crede in Me non Perirà MAI

  6. #6
    Sposto in ASP
    “Che le cose siano cosi, non vuol dire che debbano andare così. Solo che quando si tratta di rimboccarsi le maniche e incominciare a cambiare, vi è un prezzo da pagare. Ed è allora che la stragrande maggioranza preferisce lamentarsi più che fare”.

    Giovanni Falcone

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.