Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376

    N checkbox con doppio valore

    Salve, il problema si � spostato ed � questo. Ho una pagina asp costruita con un recordset, il quale pi� contenere N record. In questa pagina ho una form cos� composta.
    Maglia Nome Cognome Convocato Motivo
    Il campo Maglia lo edito
    I campi Nome e Cognome li recupero da recordset
    Il campo Motivo lo edito
    Il campo Convoato � di tipo checkbox

    Qui il codice di questa prima pagina:
    codice:
    Set rsAnag = Server.CreateObject("ADODB.Recordset")
    rsAnag.ActiveConnection = strConn
    DataUsa = "#"&DataUsa&"#"
    rsAnag.Source = "SELECT Nome, Cognome, Id FROM [T_Anag_Clienti"&session("StagioneAttuale")&"] WHERE DateDiff('d',"&DataUsa&",[Certificato])>=1 AND ([T_Anag_Clienti"&session("StagioneAttuale")&"].Stato)='ATTIVO' and Categoria='" & Session("categoria") & "' ORDER BY [T_Anag_Clienti"&session("StagioneAttuale")&"].Cognome"
    rsAnag.CursorType = 0
    rsAnag.CursorLocation = 3
    rsAnag.LockType = 3
    rsAnag.Open() 
    %>
    <form action="convocazioni3.asp" method="post" name="form1">
    <tr>
    <% 
     i = 0
     rsAnag.movefirst
     x = rsAnag.recordcount
     while not rsAnag.eof
    For i = 1 to x%>  
    <td></td>
    <td><input type="text" name="Maglia" size="1" maxlength="2" class="casellaMaglia" onKeyUp="controllaMaglia()"></td>                                        
    <td><label class="label" type="text" size="8" name="Nome"><%=rsAnag.Fields.Item("Nome").Value%></label></td>
    <td><label class="label" type="text" size="10" name="Cognome"><%=rsAnag.Fields.Item("Cognome").Value%></label></td>
    <td align="center"><input type="checkbox" size="3" name="Convocato" value="1" checked="checked"></td>
    <td><input type="text" name="Motivo" class="casellaTestoLong"></td>   
    </tr>
    <input type="hidden" name="Nome" value="<%=rsAnag.Fields.Item("Nome").Value%>">
    <input type="hidden" name="Cognome" value="<%=rsAnag.Fields.Item("Cognome").Value%>">
    <input type="hidden" name="serie" value="<%=x%>" />
    <input type="hidden" name="DataItalia" value="<%=DataItalia%>">
    <% rsAnag.movenext
    x = x - 1
    next
    wend%>
    <tr>
    <td><input type="submit" name="Insert" value="CARICA" title="CARICA" class="bottonicarica"></td>
    </form>
    </tr>
    Nella pagina CONVOCAZIONI3.asp recupero i dati e li inserisco nella tabella.
    codice:
    	Set cn1 = Server.CreateObject("ADODB.Connection")
    	cn1.Open strConn
    	
    	Dat = request.Form("DataItalia")
    	Giorno = Mid(Dat, 1, 2)
    	Mese = Mid(Dat, 4, 2)
    	Anno = Mid(Dat, 7, 4)
    	DataAmerica = Mese&"/"&Giorno&"/"&Anno
    	
    	no = replace(request.form("Nome"), "'", "''")
    	co = Replace(Request.Form("Cognome"), "'", "''")
    	motivo = request.Form("Motivo")
    	Convocato = request.Form("Convocato")
    		
    	if request.Form("Maglia") <> "" then
    		Maglia = request.Form("Maglia")
    	else
    		Maglia = ""
    	end if
    
    
    	DivisioneNome = split(no,",")
    	DivisioneCognome = split(co,",")
    	DivisioneMotivo = split(motivo,",")
    	DivisioneMaglia = split(Maglia,",")
    
    
    	For i = LBound(DivisioneNome) to UBound(DivisioneNome)
    		sql1 = "INSERT INTO T_Convocazioni"&session("StagioneAttuale")&" ( Nome, Cognome, DataConvocazione, Maglia, Convocato) " &_
    		 "VALUES ( '" & trim(DivisioneNome(i)) & "','" & trim(DivisioneCognome(i)) & "',#" & DataAmerica & "#,'" & trim(DivisioneMaglia(i)) & "','" & Convocato(i) & "')"
    		cn1.Execute sql1
    	next
    Il problema sorge quando vado a inserire il campo convocato, poich� se faccio la insert escludendo tale campo non ci sono problemi e tutto fila liscio.

    Vi prego datemi una manona non s� pi� che pesci prendere
    Chi Crede in Me non Perirà MAI

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    Quote Originariamente inviata da devil946 Visualizza il messaggio
    ... il problema si è spostato...
    e dove caccio è andato? lo sapete che i problemi devono restare fermi. diteglielo!

    Il problema sorge quando vado a inserire il campo convocato
    che problema?


    edit: ma dov'è 'sto "doppio valore" che hai citato nel titolo?
    Ultima modifica di Vincent.Zeno; 12-10-2016 a 15:20

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Il problema è che se il checkbox è spuntato allora il valore è 1 e non ci sono problemi, ma se il checkbox non è spuntato non restituisce nessun valore e quindi io mi trovo con x valori in meno nel mio array.
    Supponiamo di avere 6 record, quindi sei righe con nome, cognome, motivo, maglia , convocato.
    Se io escludo il campo convocato il codice funziona alla perfezione, ma se rimetto il campo convocato e magari tolgo il segno di spunta da 2 dei sei, allora io mio array relativo al campo convocato sarà così composto 1,1,1,1 mentre invece quello ceh vorrei io sarebbe 1,1,0,1,0,1 nel caso che avessi tolto il segno dal terzo e quinto record.
    Chi Crede in Me non Perirà MAI

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    se il checkbox non è spuntato non passa nulla, devi prevedere questa evenienza:
    o popolando la voce Convocato con un valore (es: 0), o escludendo la voce Convocato dalla query.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Giusto in teoria ci avevo pensato anche io, ma come faccio per esempio a popolarlo con valore 0 e quindi far si che il mio array sia 1,1,0,1,0,1?
    Chi Crede in Me non Perirà MAI

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    potresti mettere una pezza qui:
    codice:
    Convocato = request.Form("Convocato")
    if Convocato <> "1" then Convocato = "0"

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Allora ho fatto questa modifica, ho messo nella pagina della forma questa riga aggiuntiva :
    <input type="hidden" name="Convocato" value="0">
    <input type="checkbox" size="3" name="Convocato" value="1" checked="checked">
    Ma adesso il risultato che ottengo è questo:
    0,1,0,1,0,0,1,0,1,0,1
    In pratica mette sempre lo 0 prima dell'effettivo valore della checkbox se questa è checked, altrimenti mette solo lo 0 se è deselezionata; infatti io ho checked il 1,2,4,5,6 mentre il 3 è deselezionato
    Chi Crede in Me non Perirà MAI

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    fatto così si comporta come da prassi: due campi con lo stesso nome concatenano i valori. che a te non serve.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Allora dimmi te, come devo fare perchè io c'ho perso il capo
    Grazie
    Chi Crede in Me non Perirà MAI

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,781
    quello che ti ho suggerito non funziona?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.