Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395

    da un checkbox update un campo di un DB

    Ciao a tutti, vispiego il mio problema:
    Ho una Message Board dove quando mi arrivano i messaggi ho tra checkbox per record che sono Read,On Hold e Done. L'utente vede il messaggio e clicca su uno o su tutti i checkbox per mostrare quale e'lo stato del messaggio....
    Il problema e' che non riesco ad aggiornare il campo relativo alla checkbox sul database. Il campo sul db e' un campo Si/No...
    Ecco il codice del form (che penso sia ok):

    <form method="post" action="ControlStatus6.asp">
    <td align="center" valign="middle">
    <input <% If rs("Read") Then Response.Write("checked") %> type="checkbox" name="Read" value=1 >
    </td>
    <td align="center" valign="middle">
    <input <% If rs("OnHold") Then Response.Write("checked") %> type="checkbox" name="OnHold" value=1 >
    </td>
    <td align="center" valign="middle">
    <input <% If rs("Done") Then Response.Write("checked") %> type="checkbox" name="Done" value=1 >
    </td>
    <TD align="center" valign="middle">
    <input name="Submit" type="image" title="go" src="images/skin/icon024.gif" alt="change status" align="left" width="16" height="16" border="0">
    <td align="center" valign="middle">
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>"> </td>
    </form>

    questo form viene spedito a:

    <%
    dim checkboxRead,checkboxOnHold,checkboxDone ,idMessage
    checkboxRead = trim(request.form("read"))
    checkboxOnHold = trim(request.form("OnHold"))
    checkboxDone = trim(request.form("Done"))

    idMessage = trim(request.form("idMessage"))
    sql = "SELECT * FROM MessageBoard WHERE IdMessageBoard =" & idMessage & ";"
    Set RS2 = Server.CreateObject("ADODB.Recordset")
    RS2.Open Sql, Conn, 2, 2


    If Not RS2.BOF or RS2.EOF Then
    RS2("Read") = checkboxRead
    RS2("OnHold") = checkboxOnHold
    RS2("Done") = checkboxDone
    RS2.update
    Else
    response.write("NO RECORDS")
    End If

    RS2.close
    set RS2 = nothing

    %>

    Se modifico i campi nella tabella del db rivedo la modifica nel form, ma quando provo dalla pagina asp mi da un errore di questo tipo:
    Error Type:
    Provider (0x80020005)
    Type mismatch.
    /site/ControlStatus6.asp, line 18
    cioe':
    RS2("OnHold") = checkboxOnHold
    Perche ho selezionato solo Read , come faccio a dirgli che posso selezionare una sola checkbox oppure tutte, help me perche' non lo so fare questo controllo...

  2. #2
    Prova a modificare così

    codice:
    If rs("Read") = 1 then
    check = " checked"
    Else
    check = ""
    End If
    
    <input type="checkbox" name="Read" value=1<%=check%>>
    Se funziona lo fai per tutte le altre checkbox, cambiando ovviamente i nomi dei campi.

  3. #3

    Re: da un checkbox update un campo di un DB

    Originariamente inviato da tabarto
    <form method="post" action="ControlStatus6.asp">
    <td align="center" valign="middle">
    <input <% If rs("Read") Then Response.Write("checked") %> type="checkbox" name="Read" value=1 >
    </td>
    <td align="center" valign="middle">
    <input <% If rs("OnHold") Then Response.Write("checked") %> type="checkbox" name="OnHold" value=1 >
    </td>
    <td align="center" valign="middle">
    <input <% If rs("Done") Then Response.Write("checked") %> type="checkbox" name="Done" value=1 >
    </td>
    <TD align="center" valign="middle">
    <input name="Submit" type="image" title="go" src="images/skin/icon024.gif" alt="change status" align="left" width="16" height="16" border="0">
    <td align="center" valign="middle">
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>"> </td>
    </form>

    questo form viene spedito a:

    <%
    dim checkboxRead,checkboxOnHold,checkboxDone ,idMessage
    checkboxRead = trim(request.form("R ead"))
    checkboxOnHold = trim(request.form("OnHold"))
    checkboxDone = trim(request.form("Done"))

    idMessage = trim(request.form("idMessage"))
    sql = "SELECT * FROM MessageBoard WHERE IdMessageBoard =" & idMessage
    Set RS2 = Server.CreateObject("ADODB.Recordset")
    RS2.Open Sql, Conn, 2, 2


    If Not RS2.BOF or RS2.EOF Then
    RS2("Read") = checkboxRead
    RS2("OnHold") = checkboxOnHold
    RS2("Done") = checkboxDone
    RS2.update
    Else
    response.write("NO RECORDS")
    End If

    RS2.close
    set RS2 = nothing

    %>

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    Ciao Dirk Pitt, nel tuo ultimo messaggio non c'erano scritte modifiche vero?

    ho provato con il primo suggerimento che mi hai dato ma niente non mi seleziona niente ti posto il codice:
    Form:

    <input <% If rs("Read") Then Response.Write("checked") %> type="checkbox" name="Read" value=1<%=check%> >

    file che controlla:

    <%
    dim checkboxRead,checkboxOnHold,checkboxDone,idMessage
    checkboxRead = trim(request.form("read"))
    checkboxOnHold = trim(request.form("OnHold"))
    checkboxDone = trim(request.form("Done"))

    idMessage = trim(request.form("idMessage"))
    sql = "SELECT * FROM MessageBoard WHERE IdMessageBoard =" & idMessage & ";"
    'sql = "UPDATE QueryMessageBoardStatus SET status='" & form_dati & "' WHERE idMessageBoard =" & idMessage & ";"
    Set RS2 = Server.CreateObject("ADODB.Recordset")
    RS2.Open Sql, Conn, 2, 2

    If rs2("Read") = 1 then
    check = " checked"
    Else
    check = ""
    End If



    'If Not RS2.BOF or RS2.EOF Then
    'RS2("Read") = checkboxRead
    'RS2("OnHold") = checkboxOnHold
    'RS2("Done") = checkboxDone
    'RS2.update
    'Else
    'response.write("NO RECORDS")
    'End If

    RS2.close
    set RS2 = nothing

    response.Redirect("MessageBoard6.asp")
    %>

    che ne dici?

  5. #5
    Sì che c'erano modifiche, scritte in rosa.

  6. #6
    codice:
    If rs("Read") = 1 then 
    check = " checked" 
    Else 
    check = "" 
    End If
    Questo codice lo devi mettere prima di ogni checkbox, quindi prima di

    codice:
    <input type="checkbox" name="Read" value=1<%=check%>>
    Poi lo riproduci per le altre checkbox.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    hai ragione ho aggiornato con le tue modifiche ma niente non cambia niente....

  8. #8
    Prova a fare come ti ho detto io, vedi che funziona.

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    ok ho provato se faccio solo il read e' ok il problema viene quando metto gli altri due, mi rende un errore... ecco la form:

    <%
    If rs("Read") = 1 then
    check = " checked"
    Else
    check = ""
    End If
    %>
    <%
    If rs("OnHold") = 1 then
    check = " checked"
    Else
    check = ""
    End If
    %>
    <%
    If rs("Done") = 1 then
    check = " checked"
    Else
    check = ""
    End If
    %>
    <form method="post" action="ControlStatus6.asp">
    <td align="center" valign="middle">
    <input <% If rs("Read") Then Response.Write("checked") %> type="checkbox" name="Read" value=1<%=check%> >
    </td>
    <td align="center" valign="middle">
    <input <% If rs("OnHold") Then Response.Write("checked") %> type="checkbox" name="OnHold" value=1<%=check%> >
    </td>
    <td align="center" valign="middle">
    <input <% If rs("Done") Then Response.Write("checked") %> type="checkbox" name="Done" value=1<%=check%> >
    </td>
    <TD align="center" valign="middle">
    <input name="Submit" type="image" title="go" src="images/skin/icon024.gif" alt="change status" align="left" width="16" height="16" border="0">
    <td align="center" valign="middle">
    <input type="hidden" name="IdMessage" value="<%=RS("IDMessageBoard")%>"> </td>
    </form>
    che ne dici?
    il file che controlla il form e' quello che mi hai detto tu!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    395
    per favore qualcuno mi da una mano, please!!!!

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.