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

    cancellare file da database con onClick

    Salve a tutti, non riesco a capire una cosa:
    Ho una pagina .asp con un form di cui ho inserito un pulsante che riporto il codice (sempre mnemonico)

    codice:
    <input type="button" value="cancella" onClick="<% call cancella() %>" >
    questo mi dovrebbe riportare ad una procedura chiamata cancella che sarebbe:

    codice:
    sub cancella()
    Set canc = Server.CreateObject("Scripting.FileSystemObject")
    canc.DeleteFile("c:\prova.txt")
    Set canc = Nothing
    end sub
    Quello che non capisco è che quando io vado nella pagina il server esegue tutto lo script fino alla fine compreso la procedura e cancellandomi automaticamente il file senza la pressione del tasto, io invece vorrei (come avete capito) che alla pressione del tasto mi si cancelli il file prova.txt.

    Dove sbaglio???

    Grazie, ciao.

  2. #2
    OnClick è un evento lato client (sul browser),
    al suo interno ci possono stare solo funzioni JAVASCRIPT o VBSCRIPT.

    Inserendo onclick="<% call cancella()%>" la pagina viene interpretata e il codice della pagina quando arriva a call cancella() esegue la sub come se tu l'avessi messa in un qualsiasi punto della tua pagina.

    Dovresti invece fare così utilizzando per sempio javascript :

    <SCRIPT>
    <!--
    function fnCancella() {

    }
    //-->
    </SCRIPT>

    <input type="button" value="cancella" onClick="fnCancella()">

  3. #3
    Mi sono scappati i tasti e ho inviato il messaggio senza completarlo

    OnClick è un evento lato client (sul browser),
    al suo interno ci possono stare solo funzioni JAVASCRIPT o VBSCRIPT.

    Inserendo onclick="<% call cancella()%>" la pagina viene interpretata e il codice della pagina quando arriva a call cancella() esegue la sub come se tu l'avessi messa in un qualsiasi punto della tua pagina.

    Dovresti invece fare così utilizzando per sempio javascript :

    codice:
    <SCRIPT>
    <!--
    function fnCancella() {
    document.tuoform.cancella="SI";
    document.tuoform.submit();
    
    }
    //-->
    </SCRIPT>
    <%
    if Request("Cancella") = "SI" then
     call Cancella()
    end if
    
    %>
    
    <input type="button" value="cancella" onClick="fnCancella()">

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao DarioMarco,

    mi sembra che tu non abbia ben chiara la distinzione tra lato server e lato client

    tutto il codice asp viene eseguito nel server e al client arriva solo l'html.
    All'onclick devi richiamare una pagina che esegue il codice asp. La pagina può essere la stessa come un'altra, dipende da come vuoi fare tu.
    Io ti faccio un esempio usando una sola pagina
    codice:
    <form>
    <input type="button" value="cancella" onClick="document.location.href='?canc=ok'">
    </form>
    <%
    if Request.QueryString("canc")="ok" then
      Set canc = Server.CreateObject("Scripting.FileSystemObject")
      canc.DeleteFile("c:\prova.txt")
      Set canc = Nothing
    end if
    %>

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    stamattina sono di una lentezza spaventosa a scrivere

    il concetto è lo stesso di deivnet... mi permetto solo di fare un piccolo appunto nel javascript:
    il bottone non ha nome e se si chiamasse cancella neanche così sarebbe giusto
    codice:
    document.tuoform.cancella="SI";
    ci manca il value... sarebbe
    codice:
    document.tuoform.cancella.value="SI";
    e comunque se il bottone ha name="cancella" e value="cancella" (quello che appare nel bottone) si può evitare di valorizzarlo a SI e controllare in asp così
    codice:
    if Request("Cancella") = "cancella" then
    poi se fosse un type="submit" invece che "button" non servirebbe neanche il javascript

  6. #6
    Hai ragione willybit, mi sono dimenticato qualche pezzetto,
    intendevo comunque mettere un campo hidden di nome cancella a cui attribuire il valore "SI" in questo modo :


    codice:
    <SCRIPT>
    <!--
    function fnCancella() {
    document.tuoform.cancella.value="SI";
    document.tuoform.submit();
    
    }
    //-->
    </SCRIPT>
    <%
    if Request("Cancella") = "SI" then
     call Cancella()
    end if
    
    %>
    <form name="tuoform" action="">
    <input type="hidden" name="cancella">
    <input type="button" value="cancella" name="btCanc" onClick="fnCancella()">
    </form>

  7. #7
    Devo ammettere che hai ragione willibit, so che significa lato client e server, e posso dirti anche che potrei conoscere la distinzione, ma non l'ho messa in atto (praticamente sono un pivello )

    cmq grazie per il vostro contributo, volevo precisare che nella pagina ho delle variabili asp del tipo

    request.form("file")

    vorrei sapere se io adottassi la soluzione di willibit rimandare il collegamento sulla stessa pagina tramutando usando la querystring, andrei a perdere tale dati.

    Grazie, ciao.

  8. #8
    Salve, scusate se insisto nuovamente:
    dimenticavo di precisare che il form e di tipo multipart/data
    e non va tanto d'accordo con l'oggetto request, infatti mi da quest'errore:

    Tipo di errore:
    Oggetto Request, ASP 0208 (0x80004005)
    Impossibile utilizzare un insieme Request generico dopo aver richiamato il metodo BinaryRead.

    come potrei risolvere???

    Grazie, ciao.

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.