Gestire le checkbox

martedì 13 luglio 2010 - 14.32

tigre Profilo | Junior Member

ho questo form:
<input type="checkbox" name="abilita" value="0" />

come devo gestire la check?
nel senso che dovrei salvare la check. scrivere 1 se è cliccata o 0 se è deselezionata.


alx_81 Profilo | Guru

>come devo gestire la check?
>nel senso che dovrei salvare la check. scrivere 1 se è cliccata o 0 se è deselezionata.
che linguaggio stai usando? Che tecnologia?

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tigre Profilo | Junior Member

il salvataggio del record avviene in asp
ho provato cosi:
<input type="checkbox" name="abilita" <%if abilita="1" then%> checked="checked" <%end if%> />

e nel salvataggio:
if request.QueryString("abilita")="" then
abilita="0"
end if
if request.QueryString("abilita")="1" then
abilita="1"
end if

ma mi salva sempre "1"

alx_81 Profilo | Guru

>il salvataggio del record avviene in asp
>ho provato cosi:
><input type="checkbox" name="abilita" <%if abilita="1"
>then%> checked="checked" <%end if%> />
>
>e nel salvataggio:
>if request.QueryString("abilita")="" then
>abilita="0"
>end if
>if request.QueryString("abilita")="1" then
>abilita="1"
>end if
>
>ma mi salva sempre "1"
hai provato a vedere la sorgente della pagina? Cosa viene creato nella checkbox in base al codice che hai immesso?


--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tigre Profilo | Junior Member

come???

alx_81 Profilo | Guru

>come???
una volta che hai la pagina sul browser, destro --> view source (Visualizza sorgente pagina). Vedi l'html che ti viene prodotto..

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tigre Profilo | Junior Member

o clicco sulla check o no quello che scrive è sempre cosi:

<input type="checkbox" value="1" name="abilita" />
</div></td>
per me l'errore sta qua::
<input type="checkbox" value="1" name="abilita" <%if abilita="1" then%> checked="checked" <%end if%> />

alx_81 Profilo | Guru

>o clicco sulla check o no quello che scrive è sempre cosi:
ok, eccoti un codice di esempio:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
con chrome sembra funzionare sia con true che con checked.
con ie 7 e 8 idem.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tigre Profilo | Junior Member

non è per caso che:
dato che invio i dati in una popup per salvarli.
l'invio cosi:
var abilita=document.getElementById("abilita").value;

window.open('salva.asp?abilita='+abilita,'','width=300,height=300,left=100,top=100,menubar,toolbar');

e sulla popup
if request.QueryString("abilita")="" then
abilita="0"
end if
if request.QueryString("abilita")="1" then
abilita="1"
end if

perche ho notato che se invio i dati con submit pare che funziona.

alx_81 Profilo | Guru

>non è per caso che:
>dato che invio i dati in una popup per salvarli.
>l'invio cosi:
>var abilita=document.getElementById("abilita").value;
proprio vedendo la sorgente della pagina, ci siamo accorti che un pezzo manca sempre. Ciò significa per forza che chi passa il valore (e sembra un js da quanto mi dici) è chi sta sbagliando
Vedendo il codice del js, il getElementById torna per ID appunto, ma il tuo tag html non ha l'id, ha solo il name. Aggiungi l'attributo id="abilita" sul check. Potrebbe risolvere tutto.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tigre Profilo | Junior Member

ho provato cosi come mi hai detto:
<input type="checkbox" value="1" id="abilita" name="abilita" <%if abilita="1" then%> checked="checked" <%end if%> />

invio alla popup
var abilita=document.getElementById("abilita").value;

nella popup recupero
if request.QueryString("abilita")="" then
abilita="0"
end if
if request.QueryString("abilita")="1" then
abilita="1"
end if

ma quando salvo abilita, mi scrive nel database sempre 1
ma quello che è strano è che se non utilizzo la popup ma effettuo il salvataggio in una pagina asp funziona.



alx_81 Profilo | Guru

>invio alla popup
>var abilita=document.getElementById("abilita").value;
prova ad aggiungere alert(document.getElementById("abilita").value) qui sotto, così vediamo il valore che arriva alla popup.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

tigre Profilo | Junior Member

ho risolto cosi:
mdal form apro una pagina asp per il salvataggio del record e nella pagina salva.asp prelevo il dato cosi:

if request.form("abilita")="0" then
abilita="0"
end if
if request.form("abilita")="1" then
abilita="1"
end if

e cosi mi salva il record:
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5