Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    61

    Problema con checkbox per insert DB

    Ciao,
    nella seguente form ho inserito un campo type="checkbox".

    <form method="POST" action="registrati.asp">
    <table>
    <tr><td>campo</td><td><input type="checkbox " name="" ></td></tr>
    <tr><td colspan="2"><input type="submit" value="Conferma" name="B1"></td></tr>
    </table>
    </form>

    Quando provo a fare la insert nel database Access, mi ritorna il seguente errore:
    _______________________
    Provider error '80020005'
    Type mismatch.
    /registrati.asp, line 64
    _______________________

    Nella pagina registrati.asp eseguo queste operazioni:

    1) nomevariabile= Replace(Request.Form("form_campocheckbox"), "'", "''")

    2) RecSet("campotabella") = nomevariabile

    Potete aiutarmi a capire perchè non mi inserisce il valore in tabella?

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    "form_campocheckbox" deve essere il name del form precedente ma l'hai lascito vuoto.
    Devi mettere anche il value.

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    61
    ciao roby_72, ho modificato il codice come mi hai indicato, ma mi restituisce sempre lo stesso errore.

    nella form:
    <tr><td>Campo</td><td><input type="checkbox" name="form_checkbox" size="20" value="Yes"></td></tr>

    nella pagina registrati.asp:

    var_chk= Replace(Request.Form("form_checkbox"), "'", "''")

    Ma mi restituisce sempre lo stesso errore.

    P.S. forse non so utilizzare la checkbox. io vorrei realizzare quello che viene richiesto, in fase di registrazione ad un sito, di checkara "Letto il regolamento", non so se sono stato chiaro.

    Grazie cmq per il supporto

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ho capito dove sia l'errore, se non fai vedere lo script.
    La lettura del regolamento devi solo verificarla, non metterla nel db.

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    61
    Questo è il codice della form ModuloRegistrazione.html

    <form method="POST" action="registrati.asp">
    <table width="70%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr><td>UserName</td><td><input type="text" name="username" size="20"></td></tr>
    <tr><td>Password</td><td><input type="text" name="password" size="20"></td></tr>
    <tr><td>Email</td><td><input type="text" name="email" size="20"></td></tr>
    <tr><td>sondaggi</td><td><input type="checkbox" name="sondaggi" size="20" value="Yes"></td></tr>
    <tr><td colspan="2"><input type="submit" value="Conferma" name="B1"></td></tr>
    </table>
    </form>

    La pagina registrati.asp è la seguente:

    <%
    username = Replace(Request.Form("username"), "'", "''")
    password = Replace(Request.Form("password"), "'", "''")
    email = Request.Form("email")
    sondaggi = Replace(Request.Form("sondaggi"), "'", "''")

    IF username <> "" and password <> "" and Instr(email, "@") > 0 and Instr(email,".") > 0 then

    url_DB = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/database.mdb")
    Set Conn = Server.CreateObject("ADODB.Connection")
    conn.Open url_DB
    Set RecSet = Server.CreateObject("ADODB.Recordset")
    SQL = "SELECT * FROM UTENTI where username = '" & username &"'"
    RecSet.Open SQL, Conn, 3, 3

    IF Not RecSet.Eof Then

    usato = True
    Else
    usato = False
    End IF
    RecSet.Close
    Set RecSet = Nothing

    IF usato = True then
    ' USERNAME GIA' USATO.
    %>


    Username inserito già in uso!</p>
    <%
    Else
    ' NICK NON USATO...
    ' INSERISCO NEL DB
    Set RecSet = Server.CreateObject("ADODB.Recordset")
    SQL = "SELECT * FROM Utenti Order By ID Desc"
    RecSet.Open SQL, Conn, 3, 3
    RecSet.Addnew
    RecSet("username") = username
    RecSet("password") = password
    RecSet("email") = email
    RecSet("sondaggi") = sondaggi

    Lo script funziona senza checkbox

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La replace nel recupero dei request.form non ti serve visto il metodo che usi per l'INSERT.

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    61
    ciao Roby_72,

    modificando come da te indicato mi restituisce il seguente errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

    Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

    /registrati.asp, line 64

    Ricerco che tipo di errore sia.


    Garzie

    P.S. l'errore mi ritorna quando non seleziono il campo. Se lo seleziono, torna l'errore precedente.

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non c'entra nulla il checkbox...
    Dopo l'ELSE riapri un recordset con lo stesso nome di quello già aperto...
    Cambiagli nome!

    Roby

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2011
    Messaggi
    61
    ciao Roby,
    ho provato una nuova strada, ma ho sempre lo stesso errore.

    Ho uno script che deve leggere i dati da una tabella di un databse mdb e poi un altro script asp che dovrebbe (!!!!!!!!!) fare l'update di alcuni campi scelti dall'utente.

    Il primo script:

    <%
    Dim conn
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/database.mdb")
    sql = "SELECT NOME,SQUADRA,RUOLO FROM INPUT"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3

    WHILE NOT rs.EOF AND NOT rs.BOF
    'Recupero dati dal database e li stampo a video
    %>

    <form name="form1" id="form1" method="post" action="update.asp">
    <table border="0">
    <td align="left" bgcolor="#D9FFFF" width="176"><%Response.Write( rs.Fields("NOME"))%></td>
    <td align="left" bgcolor="#ECFFF9" width="96"><%Response.Write( rs.Fields("SQUADRA"))%></td>
    <td align="center" bgcolor="#A0DEDE" width="16"><%Response.Write( rs.Fields("RUOLO"))%></td>
    <td width="12"><input type="checkbox" name="ins" id="ins" value="<%=(rs.Fields.Item("NOME").Value)%>" /></td>
    <td><input type="submit" value="UPDATE" /></td>
    </table></form>
    <%
    'Passo al successivo recordset nel database
    rs.MoveNext()
    'Ritorna al ciclo while se la condizione (NOT rs.EOF AND NOT rs.BOF) è vera
    WEND
    'Chiude l’oggetto Recordset
    rs.Close
    conn.Close
    %>

    La pagina update.asp è la seguente:

    <%
    DIM NOME
    DIM SQUADRA
    DIM RUOLO
    DIM CHK
    'evitiamo l'SQL Injection replicando gli apici
    NOME=Replace(request.form("form_name"),"'","''")
    SQUADRA=Replace(request.form("form_squadra"),"'"," ''")
    RUOLO=Replace(request.form("form_ruolo"),"'","''")
    CHK=Replace(request.form("ins"),"'","''")

    Dim conn
    Set conn = CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/database.mdb")
    sql = "SELECT NOME,SQUADRA,RUOLO,CHK FROM INPUT"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 3, 3

    If rs.EOF then

    rs.addNew
    rs.Fields("NOME")=NOME
    rs.Fields("SQUADRA")=SQUADRA
    rs.Fields("RUOLO")=RUOLO
    rs.Fields("CHK")=CHK

    rs.update
    rs.Close
    Set rs=Nothing
    conn.Close
    Set conn=Nothing
    response.redirect("esito.html")

    Else

    Response.Write("Record già assegnato")
    Response.End
    RS.Close
    Set RS=Nothing
    conn.Close
    Set conn=Nothing
    End if
    %>

    Solito problema. Nel databse non succede nulla.

    P.S. la struttura della tabella INPUT è semplicemente

    ID autonamber, tutti gli altri campi sono text
    Dove sbaglio? Sto impazzendo con questa insert/update da giorni

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    L'errore quale'è e in che riga?

    Roby

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.