37 messaggi dal 31 gennaio 2002
www.atomica.it
Buon giorno,

nella pagina prima.asp viene costruita, prendendo i dati da un db, una form a checkbox. Ad ogni checkbox corrisponde una cifra. L'utente dovrebbe poter selezionare una o più cifre e queste (o la somma di queste ancora meglio) dovrebbe poi essere passata alla pagina seconda.asp come variabile.

Il numero di checkbox presenti è variabile naturalmente in base al numero di cifre esistendi nel db legate al cliente.

come si potrebbe fare?

grazie a tutti in anticipo

Frank Levis
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Se nella pagina che contiene la form con le checkbox hai chiamato queste ultime con lo stesso nome (non con nomi differenti), nella pagina seconda.asp (quella deputata a recuperare ed elaborare i valori), ti basterà estrarre il valore del parametro checkbox ottentendo una lista (quindi un array) di tutti i valori selezionati separati da virgola.

Esempio:
<%
'  Estrazione dei valori della collection checkbox
strCheckbox = Request.Form("nome_checkbox")
 
' Un response.Write strCheckbox restituirebbe un valore tipo:
 
 ---> valore1,valore2,valore3,valore4 <----
 
' Per sommarli occorrerà trasformare la stringa in un array
arrCheckbox = Split(strCheckbox,",")
 
 
' Un ciclo FOR EACH .... NEXT scandirà l'array e ne effettuerà la somma:
 
FOR EACH valore IN arrCheckbox
   intSomma = intSomma + Cdbl(valore)
NEXT 

Response.Write intSomma  ' Per stampare il valore
%>

Un'unica raccomandazione: Come già detto sopra, chiama le checkbox tutte con lo stesso nome e, nell'attribuzione dei valori alle checkbox, usa il punto come separatore di eventuali numeri decimali.

Ciao
Modificato da vitosulla il 25 novembre 2004 11.54 -

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
37 messaggi dal 31 gennaio 2002
www.atomica.it
Aiuto preziosissimo il tuo. Ti chiedo ancora un pochino di pazienza. Ora il risultato mi viene stampato come una sequanza di numeri uno dietro l'altro come hai detto te. Non sono separati da virgola perchè io gli passo il valore in questo modo penso:

dindi=formatnumber(rs("IMPNA0"),2,-1,0)

come devo fare per avere nella seconda pagina il risultato già sommato e con la punteggiatura regolare?

grazie ancora

Frank Levis
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Scusa, posso vedere un frammento di codice (alcune righe non tutta la pagina) in cui crei le checkbox?

Sarebbe tutto più semplice.

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/
37 messaggi dal 31 gennaio 2002
www.atomica.it
ma certo !

<%
totaleImporto = 0
totaleScoperto = 0
while not rs.EOF
Scoperto=formatnumber(rs("IMPNA0"),2,-1,0)
importo=formatnumber(rs("IMPMO"),2,-1,0)
totaleScoperto = totaleScoperto + Scoperto
totaleImporto = totaleImporto + importo
%>
<tr><td><%=rs.Fields("NURIF0")%></td><td><%=rs.Fields("NUDOC")%></td><td><%=importo%></td><td><%=scoperto%></td><td width="5"><input type=checkbox name=dindi value=<%=scoperto%>></td></tr>
<%
rs.MoveNext
wend
%>

Frank Levis
37 messaggi dal 31 gennaio 2002
www.atomica.it
ok risolto tutto in questo modo:

<%
strCheckbox = Request.Form("dindi")
arrCheckbox = Split(strCheckbox, ", ", -1, 1)
intSomma = 0
FOR EACH valore IN arrCheckbox
intSomma = intSomma + valore
NEXT

Response.Write intSomma ' Per stampare il valore
%>


grazie ancora !!!

Frank Levis
37 messaggi dal 31 gennaio 2002
www.atomica.it
risolto quasi tutto :)

ricapitolando:

ora riesco a passare alla pagina due tutti i valori numerici ricavati dalla query e ricavarne la somma.

solo che oltre alla somma dovrei passare anche gli altri dati relativiad ogni voce selezionata !!! azz

io ho per es.

ditta rossi - fattura numero 5000 - importo 23,00?
ditta verdi- fattura numero 5001 - importo 34,00?
ditta bianchi- fattura numero 5002 - importo 56,00?

ora seleziono tramite la checkbox per es. le prime due e nella seconda pagina ho il totale degli importi 1 + 2
ma dovrei anche riuscire ad avere gli altri dati tipo come segue:

ditta rossi - fattura numero 5000 - importo 23,00?
ditta verdi- fattura numero 5001 - importo 34,00?

totale 57,00?

Frank Levis
593 messaggi dal 09 ottobre 2002
www.dotnetside.org
Se i dati non vengono passati in qualche modo, non possono essere elaborati.

Tuttavia puoi ottentere un risultato valido con un'interrogazione aggregata della tabella che contiene le fatture.

Supposto che nella tabella ci sia un campo (nome_ditta) che contenga il nome della ditta a cui si riferisce la fattura, e un campo (importo) che contenga il totale di ciascuna singola fattura, con la seguente query:

SELECT nome_ditta, SUM(importo) AS Totale FROM nometabella GROUP BY(nome_ditta);

Estrarrai una lista di clienti distinti per nome con associata una colonna alias denominata Totale che conterrà il dato aggregato del totale di fatturazione per ogni singola ditta.

In questo caso:
objRS("Totale") iterato per l'intero resultset conterrà il fatturato per ogni ditta.

Esempio dopo aver lanciato la query:
<%
WHILE NOT objRS.EOF
   Response.Write "La ditta " & objRS("nome_ditta") &_
                   " ha fatturato Euro: " & objRS("Totale") & "<br>"
   objRS.MoveNext
WEND
%>

Ciao.
Modificato da vitosulla il 25 novembre 2004 12.12 -

Pochi post. Anzi, quasi quasi spengo
http://www.dotnetside.org/

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.