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

    cancella record con checkbox

    ciao a tutti. sono qui per porvi un mio dubbio.
    sto creando una pagina per la cancellazione dei dati da una tabella.
    voglio fare in modo che l'utente vede tutti i valori presenti nel Db e affianco vi sia una checkbox e un pulsante cancella. se la checkbox è spuntata, cliccando su cancella l'intero record viene cancellato.

    ho 2 pagine: la prima che genera una tabella contente i record presenti. il codice è questo:

    <%@ Language=VBScript %>
    <link href="style.css" rel="stylesheet" type="text/css">
    <%
    function submit1
    MsgBox "da", vbOK, "er"
    end function
    %>
    <HTML>
    <FORM action="add.asp" method="get" id=form2 name=form2>
    Nome: <INPUT type="text" id=text1 name=nome>

    Cognome: <INPUT type="text" id=text2 name=cognome>
    <INPUT type="submit" value="Aggiungi" id=submit1 name=submit1>
    </FORM>

    <FORM action="delete.asp" method="get" id=form1 name=form1>
    <%
    '<< FUNZIONE LETTURA RECORD NEL DB
    Dim Con, rs, strSQL
    Set Con = Server.CreateObject ("ADODB.Connection")
    con.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & server.MapPath("/cancella3/database/verifichedisistema.mdb")

    Set rs = server.CreateObject ("ADODB.Recordset")
    strSql="Select * From ditte"
    rs.Open strSql, con, 3, 3

    '<< verifica se il recordset non è il primo
    '<< vuol dire che ci sono altri recordset nel db
    if Not rs.BOF then
    '<< creazione tabella dinamica
    Response.Write "<table width=""400"" border=""1"">"
    '<< contatore records nel db
    do while not rs.EOF
    Response.Write "<tr>"
    Response.Write "<td class=""normal""> "
    Response.Write rs("Ditta") & " " & rs("consorzio")& " " & rs("ambito")
    Response.Write "</td>"
    Response.Write "<td width=""1*"">"
    Response.Write "<INPUT type=""checkbox"" value="" "
    Response.Write rs("ditta")
    Response.Write " ""name=""cSelect"" > "
    Response.Write "</td>"
    Response.Write "<td width=""2*"">"
    Response.Write "<input type=""submit"" value=""Cancella"" id=""submit1"" name=""submit1"">"
    rs.MoveNext
    loop
    Response.Write "</table>"
    Response.Write "Nel database ci sono: "
    Response.Write rs.RecordCount
    Response.Write " record"
    else
    Response.Write "Il database non contiene recordset"
    end if

    '<< chiusura rs
    rs.Close
    %>
    </FORM>
    </HTML>


    e tutto questo funziona. tuttavia, se seleziono la checkbox e clicco su cancella..mi da l'errore:

    codice:
    An error occurred on the server when processing the URL. Please contact the system administrator.  If you are the system administrator please click here to find out more about this error.
    suppongo che l'errore stia nella pagina delete.asp. vi metto il codice:

    <%
    Dim Con, rs, sDelete
    Set Con = Server.CreateObject ("ADODB.Connection")
    con.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & server.MapPath("/cancella3/database/verifichedisistema.mdb")

    sDelete = Request("cSelect")

    'Response.Write sDelete
    'Response.End

    set rs = Server.CreateObject("ADODB.Command")
    rs.ActiveConnection = con
    rs.CommandText = "DELETE FROM Ditte WHERE Ditte.ditta IN (" & sDelete & ")"
    rs.CommandType = 1
    rs.CommandTimeout = 0
    rs.Prepared = true
    rs.Execute()
    Response.Redirect("aggiungi_cancella_rec_checkbox. asp")
    %>

    qualcuno saprebbe dirmi perchè mi da l'errore e come dovrei correggere?

    grazie mille

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    C'è un problema innanzitutto con l'HTML.
    Aprendo il form prima del ciclo ti ritrovi tanti submit quanti sono i record, e questo non va bene...

    Prova nell'altra pagina a farti stampare il valore di "sDelete", riattivando queste righe commentate.

    'Response.Write sDelete
    'Response.End

    Roby

  3. #3
    innanzi tutto grazie x la risposta

    C'è un problema innanzitutto con l'HTML. Aprendo il form prima del ciclo ti ritrovi tanti submit quanti sono i record, e questo non va bene...
    allora: ho provato a togliere la parete relativa all'aggiunta di dati..l'ho ottimizzata in un'altra maniera e funziona...

    cosa intendi con aprire il form prima del ciclo? dove dovrei mettere quella parte di codice per la form?

    Prova nell'altra pagina a farti stampare il valore di "sDelete", riattivando queste righe commentate. 'Response.Write sDelete 'Response.End
    ho provato a rimetterli ma.. mi visualizza semplicemente sulla pagina i valori dei campi che seleziono con la checkbox e tutto finisce li..non cancella niente!

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Togli questo:
    set rs = Server.CreateObject("ADODB.Command")
    rs.ActiveConnection = con
    rs.CommandText = "DELETE FROM Ditte WHERE Ditte.ditta IN (" & sDelete & ")"
    rs.CommandType = 1
    rs.CommandTimeout = 0
    rs.Prepared = true
    rs.Execute()
    Response.Redirect("aggiungi_cancella_rec_checkbox. asp")

    e sostituiscilo con questo:
    sql = "DELETE FROM Ditte WHERE Ditte.ditta IN (" & sDelete & ")"
    con.Execute(sql)
    Response.Redirect("aggiungi_cancella_rec_checkbox. asp")

  5. #5
    funziona!!!!

    grazie mille...ho sistemato e riscritto un pò di cose, ho seguito i tuoi consiglie ed adesso lavora a dovere! grazie mille!

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.