PDA

Visualizza la versione completa : UploadRequest.Item di checkbox


 
nicyork
17-11-2004, 12:54
Ciao.
Ho una pagina con un form dal quale carico delle immagini ed ho dei checkbox (creati dinamicamente legendo da un db) oltre ad altri campi input e select.

Per recuperare il valore dei campi input uso
descrizione = UploadRequest.Item("descrizione").Item("Value")
ma come faccio a recuperare i valori dei checkbox selezionati?
Avete qualche idea?

Grazie.
:ciauz:

Lazza
17-11-2004, 13:04
allo stesso modo con cui recuperi i valori dei campi input

UploadRequest.Item("nomecheckbox").Item("Value")

Ovviamente il checkbox dovrà avere un value associato:
<input name="chk1" id="chk1" type="checkbox" value="1">

se il check è selezionato allora verrà restituito il valore 1 altrimenti sarà vuoto.

Se hai + di un checkbox e tutti hanno lo stesso nome
Es:
<input name="chk1" id="chk1" type="checkbox" value="1">
<input name="chk1" id="chk1" type="checkbox" value="2">
<input name="chk1" id="chk1" type="checkbox" value="3">

l'oggetto "chk1" sarà valorizzato con una stringa delimitata da ", " contente i valori dei checkbox selezionati.
Es: se check 1 e 3 sono on e check 2 è off, il valore di chk1 sarà "1, 3"

Ciao :ciauz:

nicyork
17-11-2004, 13:52
Ho provato... ma se non selezione nessun checkbox mi da il seguente errore:

Errore di run-time di Microsoft VBScript error '800a01a8'

Necessario oggetto: 'Item(...)'

/pagina.asp, line 24

dove alla linea 24 ho
corso = UploadRequest.Item("corso").Item("Value")

e il checkbox corso è così definito

<input type="checkbox" name="corso" id="corso" value="4">a

<input type="checkbox" name="corso" id="corso" value="6">b

<input type="checkbox" name="corso" id="corso" value="3">c

<input type="checkbox" name="corso" id="corso" value="1">d

<input type="checkbox" name="corso" id="corso" value="5">e

<input type="checkbox" name="corso" id="corso" value="2">f


(il value è dato dall'id del record letto).

Se ne seleziono 1 sembra vada bene... se ne selezioni due mi da un errore sul caricamento del file (quindi prima di arrivare alla valorizzazione di corso = UploadRequest.Item("corso").Item("Value")... sto cercando di capire quale sia il problema per questo caso...

:ciauz:

Lazza
17-11-2004, 15:27
Ho capito dov'è il tuo problema.
Tu stai utilizzando l'upload fatto in asp il cui codice lo si trova in giro per la rete.

Ho utilizzato anche io quel codice e ti devo dire che ho dovuto apportare delle modifiche in quanto non è in grado di gestire gli input con lo stesso nome e non viene gestista neppure la casista in cui tu ti riferisca ad un oggetto non valorizzato.


Le modifiche apportate non sono così sbrigative da essere inserite in questo spazio.

Se vuoi contattarmi via mail, ti invio il codice così come l'ho modificato io.

Ciao

:ciauz:

nicyork
17-11-2004, 18:18
X Lazza
Ti ho mandato un PM perchè il form del forum per mandarti la mail mi da errore di script!
Ciao e grazie.

nicyork
18-11-2004, 11:22
Ho provato ad inserire dei dati non riempendo tutti i campi del form ma funzione... a questo punto non so se si tratti dello stesso script che hai tu... comunque quando puoi inviamelo che ci do un occhio... grazie...

Sembra il problema essere causato proprio dai checkbox...
allora pensavo... imposto nel form il nome dei checkbox così:
<... name="corso<%=IDCorso%>" ...> in modo da averli tutti con nomi diversi....

poi quando dovrei fare la valorizzazione, riprendo la stessa query di lettura dei corsi e in qualche modo ricrei i nomi dei campi in modo da fare una cosa di questo tipo (dentro al loop di lettura):

corso<%=RS_Dati("IDCorso")%> = <%UploadRequest.Item("corso").Item("Value")%>

dove:
- corso<%=RS_Dati("IDCorso")%> vorrebbe essere il nome della variabile (corrispondente al nome del checkjbox nel form

- <%UploadRequest.Item("corso di IDcorso").Item("Value")%> vorrebbe essere il valore del campo "corso di idcorso" del form...

però non so come sia la sintassi giusta...e neanche se sia un buon modo per risolvere il problema...

Poi non so se così riuscerei comunque a risolvere il problmea nel caso nessun checkbox fosse valorizzato... :master:

Voi che dite?

Grazie.
:ciauz:

nicyork
22-11-2004, 12:30
Ho risolto in maniera diversa...

Ho diviso le pagine... la pagina con la lista dei checkbox l'ho fatta separata da tutto il resto, in modo da poter gestire il request.form del checkbox... unica cosa ora se seleziono più checkbox ho una cosa del tipo:

1,5,7

contenunto nel request.form del checkbox, che sarebbero gli ID dei check selezionati... come faccio a "spezzettarli" per poi fare un ciclo di insert nel db?
Grazie.
Ciao

Loading