Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585

    Passaggio valore checkbox e Database Access

    Ciao a Tutti,
    ho il seguente problema:

    ho un Database di Access 2003, in cui ho creato un campo chiamato "Off_On" ,

    * all' inizio l' ho definito come campo Si'/No, e ho provato a scegliere tutti iformati disponibili: Vero/Falso, Si/NO, On/Off

    * ho poi provato a ridefinirlo come campo Numerico, mettendo 1 per record flaggato e 0 per record senza spunta ... NIENTE

    Ho IIS e ho una pagina index.asp
    Nella pagina index.asp ho la seguente sintassi: ho una form in cui richiamo valori presenti nel database nel seguente modo:

    <%@ Language=VBScript %>
    <% Option Explicit
    Dim nr, objConn, objRS, objRS2, rec, strSQL
    '
    nr = 0
    rec = 1
    '
    if trim(request("rec"))<>"" then rec = Request("rec")
    %>

    <html>

    <head>
    .....
    <Script Language="JavaScript">
    function notify(n) {
    if (n==1) {
    var answer = confirm("Save changes?")
    if (answer) {
    document.FrontPage_Form1.action = "mod_db.asp "
    document.FrontPage_Form1.submit();
    return true; } }
    }
    </script>
    </head>

    <body>
    <%
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.ConnectionString = "DSN=pr.dsn"
    objConn.Open
    '
    Set objRS2 = Server.CreateObject("ADODB.Recordset")
    objRS2.Open "t_pr", objConn, , 3, 2
    Do While Not objRS2.EOF
    If (objRS2("Num") = Cint(rec)) Then
    strSQL = "SELECT * FROM t_pr WHERE Num = " & rec
    Set objRS = objConn.Execute(strSQL)
    End If
    objRS2.MoveNext
    nr = nr + 1
    Loop
    '
    %>
    <div align="center">
    <center>
    <form method="POST" webbot-onSubmit language="JavaScript" name="FrontPage_Form1">
    <table>
    ....
    <textarea rows="2" id="description" name="description" cols="103"><%=objRS("Descrizione")%></textarea>

    <input type="checkbox" name="flag" value="<%=objRS("Off_On")%> ">
    <input type="submit" style="width:99;height:26" name="final" value="Final Version" onClick="notify(1)"></td>
    </table></form>
    </center>
    </div>
    <%
    objRS.Close
    objRS2.Close
    objConn.Close
    Set objConn = Nothing
    %>
    </body>
    </html>

    SE NEL DATABASE C' E' IL RECORD=2 CHE CONTIENE LA SPUNTA, OPPURE IL VALORE NUMERICO 1, NON RIESCO A RICHIAMARE LA SPUNTA NEL CAMPO CHECKBOX, COME DEVO FARE ???

    Ho provato a mettere <%=cbool(objRS("Off_On"))%>
    oppure <%=objRS("Off_On").Value%>

    ma non riesco a richiamare il valore dal campo di Database e renderlo visibile nella pagina index.asp

    INOLTRE

    con il pulsante "Final Version" lancio la pagina mod_db.asp che mi consente di modificare i campi del form e le modifiche vengono messe nel Database ...
    Per tutti i campi input text e textarea presenti nel form non c' e ' problema, e' che con il campo "Off_On" non riesco a mettere nel DataBase la spunta o l' 1 nel caso del flag...
    come posso fare ???

    Qui il codice della pagina mod_db.asp :

    <%@ Language=VBScript %>
    <%
    Option Explicit
    Dim objConn, objRS, rec
    '
    rec = Cint(Request.Form("rec_mod"))
    '
    Set objConn = Server.CreateObject("ADODB.Connection")
    objConn.ConnectionString = "DSN=pr.dsn"
    objConn.Open
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open "t_pr", objConn, , 3, 2
    '
    Do While Not objRS.EOF
    If (objRS("Num")=rec) Then
    ...
    objRS("Descrizione") = Request.Form("description")
    objRS("Off_On") = Request.Form("flag")
    objRS.Update
    End If
    objRS.MoveNext
    Loop
    '
    objRS.Close
    Set objRS = Nothing
    objConn.Close
    Set objConn = Nothing
    %>

    <HTML>
    <BODY>
    ......</BODY>
    </HTML>


    Grazie in anticipo dell' attenzione e dell' aiuto !!!

  2. #2
    ragiona al contrario: crea due record dentro access, uno col campo ON_OFF acceso, e uno col campo spento. Li leggi da ASP e ti fai stampare il valore. Da lì ti regoli.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Grazie optime,

    e' quello che ho fatto, ho creato nel Database 2 records, uno con il flag attivo e uno senza flag, (Nel caso di Campo Si/No)
    OPPURE
    un record con il valore 1, e l' altro con il valore 0 (Nel caso di Campo Numerico)

    ma quando richiamo i 2 records con la pagina index.asp vedo che il checkbox e' SEMPRE vuoto ...

  4. #4
    devi fare una semplice

    Response.Write "maGGico checkbox...: " & objRS("Off_On") & "
    "
    Response.Flush

    e poi posta quello che viene a video

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Grazie optime,

    e' quello che ho fatto, ho creato nel Database 2 records, uno con il flag attivo e uno senza flag, (Nel caso di Campo Si/No)
    OPPURE
    un record con il valore 1, e l' altro con il valore 0 (Nel caso di Campo Numerico)

    ma quando richiamo i 2 records con la pagina index.asp vedo che il checkbox e' SEMPRE vuoto ...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Optime,

    ho fatto come mi hai detto:

    nel database di Acces ora il campo Off_ON e' di tipo Si/No, con formato dati On/Off

    Ho 2 records:
    il record 1 e' con flag vuoto
    il record 2 ha la spunta sul flag

    Richiamando i records da index.asp ho:

    il valore Falso sul record 1
    il valore Vero sul record 2

    come e' giusto che sia,
    ma in entrambi i casi il campo checkbox e' sempre bianco, vuoto ...

    mi viene spontanea una domanda: per far vedere se un record ha la spunta o no, va bene l' input type=checkbox oppure devo richiamare un altro tipo id input type ??

    ho provato con input type text che pero' mi restituisce False e True ...

  7. #7
    ok. ragioniamo

    per accendere una checkbox devi fare

    ... checked="checked" ...

    quindi potresti dire

    ...
    acceso=""
    If objRs("On_Off")="Vero" Then acceso="checked='checked'"
    ....
    <input type="checkbox" name="flag" <%=acceso%> ">
    ...

    prova

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Optime,

    come mi hai detto te, funziona, sei bravissimo, davvero !!!

    Pero' non ho risolto ancora appieno il problema

    Adesso dalla mia pagina index.asp vedo il rettangolo vuoto sul record 1 e il flag sul record 2 e questo va benissimo ...

    Solo che, se nel record 2, tolgo la spunta dal campo checkbox e schiaccio il pulsante per salvare il valore nuovo nel DB ottengo il seguente messaggio di errore:

    Si sono verificati errori in un'operazione OLE DB composta da più passaggi. Controllare i singoli valori di stato OLE DB, se disponibili. Nessuna operazione eseguita.
    /aesi_peer/mod_db.asp, line 22

  9. #9
    1. ragiona al contrario
    2. posta il codice di aggiornamento

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    585
    Optime,

    il codice di aggiornamento e' quello che vedi nel mio primo messaggio alla voce mod_db.asp :

    ho messo che il campo objRS("Off_On") = Request.Form("flag")

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.