Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Valore Checkbox da inviare a database Access

    raga, ho bisogno di una checkbox che a seconda della spunta o no, mi invii un valore true o false al database access

    come devo impostare la checkbox e che valore devo inviare al database?

    grazie anticipatamente

  2. #2
    Il campo nel db lo fai di tipo numerico.
    la checkbox della form passa il valore 1
    se la checkbox della form non passa alcun valore (perchè non è stata checkata) allora salvi 0 nel db.

  3. #3
    perfetto

    va alla grande, prima lo facevo con campo Si/No, ma non faceva altro che darmi problemi...

    grazie mille

  4. #4
    Prego

  5. #5
    senti, già che ci sono....


    ho il seguente file in ASP:

    vengono estratti degli oggetti da un database .mdb e visualizzati in una pagina chiamata "archivio.asp" VERTICALMENTE.

    es.

    Scolapasta
    Attaccapanni
    Accappatoio
    .
    .
    .
    etc


    alla loro destra ci sono più colonne, ognuna contenente una checkbox che dovrei attivare o meno a seconda del cliente che richiede quell'oggetto.


    es.
    codice:
    ----------------Rossi------Bianchi
    Scolapasta----|   v   |--|   v   |
    Attaccapanni--|   v   |--|   v   |
    Accappatoio---|       |--|   v   |

    ora, quanto finisco di mettere le spunte, devo inviare il tutto al DB

    ma, ammettendendo che a ogni checkbox assegno il nome+id (es. checkbox_35), come faccio a inviare il tutto al DB?

    spero di essere stato chiaro, ho fatto pure i disegnini

  6. #6
    alla checkbox dai come nome "id_valoreIDOggetto_valoreIDUtente"
    Con
    codice:
    for each item in request.form
      if left(item,3) = "id_" then
        elementi = split(item,"_")
        idOggetto = elementi(1)
        idUtente = elementi(2)
       conn.execute("INSERT INTO tabellaAssociazioni (idOggetto, idUtente) VALUES(" & idOggetto & ", " & idUtente & ")")
      end if
    next

  7. #7
    spè spè te la fai troppo complicata

    credo di aver risolto


    ogni checkbox l'ho nominata con "nome + id" (es. checkbox_35)

    poi quando mando via il tutto faccio così:

    codice:
            do while not rs1.EOF
    
    		id = rs1 ("id")
    		cb = "checkbox_" & id
    		
    		if (Request.Form(cb) = 1) then 	
    			rs1.Fields("Lista Rossi") = 1
    		else 
    			rs1.Fields("Lista Rossi") = 0
    		end if 
    		
    		rs1.Fields("Lista Rossi") = Request.Form(cb)
    
    	rs1.moveNext
    	Loop
    aoh
    funziona

  8. #8
    solo che mo il problema sorge con le altre colonne.... :master:

    mo vediamo il tuo, anche se ci ho capito poco

  9. #9
    Suppongo che tu abbia 2 tabelle:
    tabellaUtenti
    idUtente - contatore (chiave primaria)
    nomeUtente - testo
    ...

    tabellaOggetti
    idOggetto - contatore (chiave primaria)
    nomeOggetto - testo
    ...

    A te serve una terza tabella dove mettere in relazione utenti ed oggetti.
    tabellaRelazioniUtentiOggetti (senza alcuna chiave primaria)
    idUtente - numerico
    idOggetto - numerico

    A questo punto la tabella HTML la costruisci facendo una prima query sulla tabella utenti ed elencandoli tutti in una riga <tr> ognuno dentro la propria cella.
    Inoltre, durante il ciclo di lettura della tabella utenti, memorizzo in ordine di lettura gli idUtenti dentro ad un array.
    Successivamente leggo la tabella oggetti che metterò ognuno dentro alla prima cella di ogni riga, mentre nelle celle successive della stessa riga metterò i campi checkbox con un ciclo che legge l'array degli idUtenti (precedentemente creato) in modo da dare ad ogni checkbox il name="id_valoreIDOggetto_valoreIDUtente". Con una funzione apposita ottengo se il campo deve essere checkato di default o meno (verifico se nella tabella delle relazioni ci sta un record con idOggetto e idUtente).
    Infine, il submit di questa form invierà tutti i checkbox alla pagina successiva la quale, per prima cosa fa un "DELETE * FROM tabellaRelazioniUtentiOggetti" e poi, con un ciclo sulla collection request.form intercetto i campi che iniziano per "id_", verifico che contengano 1 come valore (ovvero che siano stati spuntati) e se lo sono, splitto il name del campo in base al carattere _ e prendo gli elementi in posizione 1 e 2, rispettivamente idOggetto e idUtente e faccio una INSERT INTO nella tabellaRelazioniOggettiUtenti.
    codice:
    <%
    sqlServer_name = "localhost"
    sqlServer_db = "samples"
    sqlServer_login = "xxxxxx"
    sqlServer_password = "yyyyyy"
    
    connString = "Provider=sqloledb;" &_
    						 "Network Library=DBMSSOCN;" &_
    						 "Encrypt=yes;" &_
    						 "Data Source=" & sqlServer_name & ";" &_
    						 "Initial Catalog=" & sqlServer_db & ";" &_
    						 "User Id=" & sqlServer_login &";" &_
    						 "Password=" & sqlServer_password & ";"
    
    thisPage = request.serverVariables("PATH_INFO")
    submit = request.serverVariables("REQUEST_METHOD") = "POST"
    reloadPage = false
    
    function verifyRelation(theConn,theObjectID,theUserID)
      theSQL = "SELECT COUNT(*) FROM tabellaRelazioniOggettiUtenti WHERE idOggetto = " & theObjectID & " AND idUtente = " & theUserID
      set theRS = theConn.execute(theSQL)
        verifyRelation = theRS(0)
      theRS.close
      set theRS = nothing
    end function
    
    dim arrayID()
    
    set conn = server.createObject("ADODB.Connection")
    conn.open connString
    
    	if submit then		
    		conn.execute("DELETE FROM tabellaRelazioniOggettiUtenti")		
    		for each item in request.form
    			if left(item,3) = "id_" and request.form(item) = "1" then
    				arrayItems = split(item,"_")
    				objectID = arrayItems(1)
    				userID = arrayItems(2)
    				conn.execute("INSERT INTO tabellaRelazioniOggettiUtenti (idOggetto, idUtente) VALUES(" & objectID & ", " & userID & ")")
    			end if
    		next
    		reloadPage = true
    	end if
    
    sql = "SELECT idUtente, nomeUtente FROM tabellaUtenti ORDER BY idUtente"
    set rs = server.createObject("ADODB.Recordset")
    rs.open sql, conn, 1, 3
    
    	response.write "<form method=""post"" action=""" & thisPage & """>" & vbCrLf
    	response.write "	<table border=""1"">" & vbCrLf
    	response.write "		<tr>" & vbCrLf
    	response.write "			<td></td>" & vbCrLf
    
    	if not rs.eof then
    		i = 0
    		totUsers = rs.recordCount
    		reDim arrayID(totUsers - 1)		
    		do until rs.eof
    			response.write "			<td>" & rs("nomeUtente") & "</td>" & vbCrLf
    			arrayID(i) = rs("idUtente")
    			rs.moveNext
    			i = i + 1
    		loop
    	end if
    	
    	response.write "		</tr>" & vbCrLf
    
    rs.close
    
    sql = "SELECT idOggetto, nomeOggetto FROM tabellaOggetti ORDER BY idOggetto"
    rs.open sql, conn, 1, 3
    
    	if not rs.eof then
    		do until rs.eof
    			response.write "		<tr>" & vbCrLf
    			response.write "			<td>" & rs("nomeOggetto") & "</td>" & vbCrLf
    			for i = 0 to uBound(arrayID)
    				response.write "			<td><input type=""checkbox"" name=""id_" & rs("idOggetto") & "_" & arrayID(i) & """ value=""1"""
    				if verifyRelation(conn,rs("idOggetto"),arrayID(i)) = 1 then
    					response.write "checked=""checked"""
    				end if
    				response.write " /></td>" & vbCrLf
    			next
    			response.write "		</tr>" & vbCrLf
    			rs.moveNext
    		loop
    	end if
    
    rs.close
    set rs = nothing
    	response.write "		<tr>" & vbCrLf
    	response.write "			<td colspan=""" & totUsers + 1 & """><input type=""submit"" value=""esegui"" /></td>" & vbCrLf
    	response.write "		</tr>" & vbCrLf
    	response.write "	</table>" & vbCrLf
    	response.write "</form>" & vbCrLf
    
    conn.close
    set conn = nothing
    
    if reloadPage then
    	response.write "<script type=""text/javascript"">" & vbCrLf
    	response.write "	document.location.href='" & thisPage & "';" & vbCrLf
    	response.write "</script>" & vbCrLf
    end if
    %>

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 © 2026 vBulletin Solutions, Inc. All rights reserved.