147 messaggi dal 17 settembre 2001
Buongiorno...
Ho bisogno del vostro aiuto
Da un database leggo un campo contenente un valore Y/N di testo.
Questo valore lo leggo e lo inserisco in una variabile di nome Flag01. Poi eseguo questo codice (il checkbox è in un form)

IF Flag01="Y" THEN
Response.Write ("<input type='checkbox' name='Flag01' value='Y' checked>")
Else
Response.Write ("<input type='checkbox' name='Flag01' value='N'>")
END IF

E fin qui nessun problema.
Il problema si verifica alla pagina successiva.
Partendo dal caso che il Flag01 sia N non riesco, una volta aggiunto il segno di spunta al checkbox ad avere il valore Y nellapagina successiva. Qualcuno sa dirmi perchè? Grazie.
Posto anche il codice della pagina successiva

Flag01=Request.Form("Flag01")
if flag01="" then
Flag01 ="N"
end if
Modificato da Luca_67 il 26 agosto 2004 09.32 -

Ho visto cose che voi Italiani non potete neanche immaginare.... (Enrico Bertolino)
11.886 messaggi dal 09 febbraio 2002
Contributi
il funzionamento della checkbox è questo:
se viene spuntata, vale il valore che gli hai dato.
Se non viene spuntata, value stringa vuota.
Quindi, avendo una checkbox come questa:

<input type="Checkbox" name="Flag01" value="N">

se la spuntassi, avresti come valore "N". Nel successivo codice che usi:

Flag01=Request.Form("Flag01")
if flag01="" then
Flag01 ="N"
end if

Flag01 varrà sempre e comunque "N".
Perchè con la prima istruzione, valorizzi Flag01 con Request.From("Flag01") che potrà essere o "N" o stringa vuota.
Col l'if, nel caso sia stringa vuota, la valorizzi con "N".
"Y" non è mai citata.


allora, secondo me, fai un errore concettuale qui:

IF Flag01="Y" THEN
Response.Write ("<input type='checkbox' name='Flag01' value='Y' checked>")
Else
Response.Write ("<input type='checkbox' name='Flag01' value='N'>")
END IF


modifica così:

Dim spuntato
if Flag01="Y" then spuntato=" CHECKED"
Response.write("<input type=""checkbox"" name=""FlagO1""" & spuntato & ">")


questo ti produrrà una checkbox senza alcun valore impostato, che ha o non ha l'attributo checked a seconda del valore di Flag01.
Quando vai a recuperare il valore nella pagina successiva, ti basta fare:

Flag01=Request.Form("Flag01")
if Flag01="" then Flag01="N" else Flag01="Y"

cioè: se flag01 ti è arrivata vuota, falla valere N, altrimenti falla valere Y.
Quando una checkbox non ha valore ed è spuntata, vale "on" come valore predefinito.
ciao
Modificato da BrightSoul il 26 agosto 2004 10.56 -

Enjoy learning and just keep making
147 messaggi dal 17 settembre 2001
Allora se ho capito bene...
Io imposto il value di tutte le checkbox a 'Y', quindi gestisco i checked in base ai valori che mi arrivano dai database...
Poi nella pagina che elabora dove trovo "" imposto 'N'
L'errore è nel aver cercato di dare due possibili valori (Y/N) alla checkbox, giusto?

Ho visto cose che voi Italiani non potete neanche immaginare.... (Enrico Bertolino)
147 messaggi dal 17 settembre 2001
Funziona!!! :)
Grazie mille, BrightSoul.
Questi sono errori che uno si porta dietro dal VB...


Grazie mille.

Ho visto cose che voi Italiani non potete neanche immaginare.... (Enrico Bertolino)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.