49 messaggi dal 07 agosto 2002
Ciao a tutti!

Nel mio form ho una casella checkbox per ogni risultato della mia query. La checkbox serve all'utente a scegliere se cancellare quei record.
Non sapendo quanti sono i record, ho pensato di nominare i vari checkbox nel ciclo di visualizzazione chiamandoli "checkbox<%=i%>":

i=1
Do while not Rs1.EOF%>
<tr>
<td><%=n%></td>
<td><%=rs1("oggetto")%</td>
<td><INPUT id=checkbox<%=i%> type=checkbox value="<%=rs1("id")%>"></td>
</tr>
<%
i=i+1
Rs1.MoveNext
Loop

Come faccio a passare la lista di quelli selezionati ad un'altra pagina? Non posso avere n c1=request("checkbox1") perché non so quanti sono.
Avevo pensato di fare un JS che costruisse una stringa del tipo /id1/id2/.../idN/ per ogni checkbox checked, ma non riesco a costruire dinamicamente il nome delle checkbox per fare un ciclo, cioè in JavaScript dovrei fare un ciclo del tipo:

str="/"
for (i = 0; i<= n; i++)
{
if (document.pippo.checkboxi.checked)
{str=str+document.pippo.checkboxi.value+'/';}
}

Ma chiaramente checkboxi restituisce errore, dovrei trovare il modo di costruire dinamicamente il nome "checkbox123" o una via diversa...

Idee? Proposte alternative?
Grazie!
Via JavaScript si può fare usando una sintassi leggermente diversa da quella che hai usato:

str="/" 
for (i = 0; i < n; i++) 
{ 
if (document.pippo["checkbox" + i].checked) 
str += document.pippo.["checkbox" + i].value + "/"; 
} 


Comunque puoi fare la stessa cosa lato server, scorrendo la collection request.form:

<%
For i = 1 To Request.Form.Count
  Response.Write Request.Form.Key(i) & " = " & Request.Form(i) & "<br>"
Next
%>


Nel ciclo d'esempio che ti ho postato vengono stampati i nomi (Key) e i valori di tutti gli elementi del form. Non ti resta che "filtrare" le chiavi corrispondenti alle tue checkbox e.... il gioco è fatto.

NOTA: la soluzione lato server è decisamente preferibile.

Matteo Casati
GURU4.net

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.