Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Richiesta conferma prima di cancellazione

    Salve

    ho iniziato ad usare per una serie di form il tag <input type="image"... per avere dei tasti personalizzati.

    Mi sono bloccato quando sono arrivato alla funzione di eliminazione record.

    Prima della cancellazione vorrei inserire una richiesta preventiva di conferma eliminazione.

    Ho trovato istruzioni javascript (evento onClick) per tasti <input type="button"... o link testuali, la finestra di conferma si apre e premendo annulla non viene eseguita alcuna operazione.

    Il problema è se cerco di adattare gli stessi script sul tasto "image", la finestra di richiesta si apre ma l'eliminazione avviene ugualmente sia che prema Ok o Annulla.

    Ho fatto alcuni tentativi ma l'esito è sempre lo stesso... tasti button e link testuali vengono intercettati e bloccati, tasti image aprono la richiesta ma la cancellazione avviene ugualmente.

    Avete suggerimenti javascript e non per avere una richiesta preventiva di conferma funzionante su tasto image.

    Grazie in anticipo per eventuali suggerimenti.

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, potrebbe dipendere se usi questo (presumo) confirm su un tag o su di una form.
    Nel primo caso se gestisci la cosa lato javascript basta che in caso di seleziona Annula, stopperai il tutto con per un return false.
    codice:
    if(!confirm(('Continuare?')){
      return false;
    }
    Nel secondo caso se fosse legato ad una form, probabilmente esegui un submit che continua comunque.
    In questo caso dovresti usare non più l'evento sul click del tag ma sull'evento del sumbit della form stessa
    codice:
    <form onSubmit="miafunzione()" ......>
    
    function miafunzione(){
      if(!confirm(('Continuare?')){
      return false;
    }
    }
    o direttamente nel tag come nell'esempio 3

  3. #3
    Ciao
    si uso confirm su tag posto il codice:

    codice:
    // funziona
    <input type="button" name="invia" value="elimina" src="immagini/elimina0.jpg" onclick="cancella(1)">
    
    // cancella comunque
    <input type="image" name="invia" value="elimina" src="immagini/elimina0.jpg" onclick="cancella(1)">
    
    
    <script type="text/javascript">
    function cancella(id)
    {
      var sei_sicuro = confirm('sei sicuro di vole cancellare?');
      if (sei_sicuro)
       {
         alert('cancellazione eseguita');
        }else{
          alert('cancellazione NON eseguita');
       }
    }
    </script>
    sia con button che image fanno la richiesta e comunicano l'esito, ma nel caso di image l'elaborazione prosegue e la cancellazione avviene comunque.
    Il tuo suggerimento di 'confirm sul tag' sembra, non sono esperto in javascript, equivalente al mio che non funziona nel caso di input type="image".

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, nell' ELSE del confirm devi aggiungere : return false; o lo script continuerà comunque (immagino l'eliminazione avvenga nel codice seguente in qualche modo che non vedo).

  5. #5
    Ciao
    trovo strano che il problema si presenti solo con type="image" e non con type="button", di fatto uno funziona e l'altro no.
    Ho provato anche a mettere i return false; ma non cambia nulla.


    Riporto la struttura in blocchi per vedere se il problema può dipendere da come è impostata


    codice:
    ===================================================
    main.php
    <?php
       
        // lettura tipo operazione (inserisci/modifica/cancella) 
         
        if ($operazione=="cancella")
           {delete....}
    
    
        //display form
            ==========
            !        !
            !        !
            !        !
            ==========
    
    
        // la barra dei comandi è memorizzata in uno script a parte 
        include ("barra-comandi.php")
    
    ?>
    ===================================================
    barra-comandi.php
    <?php
    
    //php della barra comandi
    <table align="center" border="0" cellpadding="0" cellspacing="0" width="550">
        <tr>
            <td width="90" align="left">
                <p align="left"><font face="Tahoma"><span style="font-size:10pt;">&nbsp;</span></font></p>
            </td>
            <td width="460" align="left">
                <p align="right"><font face="Tahoma"><span style="font-size:10pt;"><img src="immagini/commenta0.jpg" width="72" height="22" border="0">
                <input type="image" name="invia" value="modifica" src="immagini/modifica0.jpg" width="72" height="22" border="0">
            <input type="image" name="invia" value="elimina" onclick="cancella(1);" src="immagini/elimina0.jpg" width=" 72" height="22" border="0">
            </span></font>
            </td>
        </tr>
    </table>
    <script type="text/javascript">
    function cancella(id)
    {
      var sei_sicuro = confirm('sei sicuro di voler cancellare?');
      if (sei_sicuro)
      {
         alert('cancellazione eseguita');
         return false;
      }else{
        alert('cancellazione NON eseguita');
        return false;
      }
    }
    </script>===================================================
    Ho provato a spostare la funzione confirm dallo script richiamato alla main.php e i record continuano ad essere eliminati anche dopo aver annullato la richiesta.

  6. #6
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Questo per i fatti suoi funziona correttamente con un input type image
    codice:
    <script>
    function prova(){
    	if(confirm('test')){
     		alert('OK');
    	}else{
    		alert('ANNULLA');
    		return false;
    	}
    	alert('continuato')
    }
    </script>
    <input type="image" src="" onClick="prova()" alt="image">
    Ci dev'essere qualcos'altro che fa continuare.
    Nell'html non si capisce se il tutto sta all'interno di un tag FORM. Se così fosse come detto sopra va gestita l'azione della form e non il solo tasto.
    Quindi una cosa di questo tipo se in una form
    codice:
    <script>
    function prova(){
    	if(confirm('test')){
     		alert('OK');
    	}else{
    		alert('ANNULLA');
    		return false;
    	}
    	alert('continuato')
    }
    </script>
    <form action="" onsubmit="return prova();">
    <input type="image" src="" alt="image">
    </form>

  7. #7
    Ciao, grazie

    un passo avanti e uno indietro.

    Mettendo lo script nel tag form funziona... questo è il passo avanti, per contro è che la richiesta di conferma viene fatta per ogni tasto presente nella barra: commenta, modifica e cancella.

    Riepilogando:


    1) script a livello di tasto con button funziona
    <input type="button" name="invia" value="elimina" src="immagini/elimina0.jpg" onclick="cancella(1)">


    2) script a livello di tasto con image non funziona (fa la richiesta ma prosegue comunque)
    <input type="image" name="invia" value="elimina" src="immagini/elimina0.jpg" onclick="cancella(1)">


    3) script a livello di form funziona ma la richiesta viene fatta per qualsiasi tasto

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Un pulsante type=image e' assimilabile al pulsante type=submit ed il controllo va impostato direttamente sul form.
    In pratica viene gestito l'evento onclick, grazie al quale puoi modificare una variabile globale che ti segnali il caso, ma il submit del form viene sempre e comunque richiamato.


    codice:
    <script>da_image=false;</script>
    <form onsubmit="if(da_image) return confirm('sei sicuro di voler cancellare?')">
    <input type=image onclick="da_image=true">
    </form>
    Spero si capisca l'esempio
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Ragazzi

    grazie ad entrambi per la chiarezza e disponibilità...
    javascript ha una sintassi e logica che faccio fatica a capire
    problema risolto capendo qualcosina-ina in più

  10. #10
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ci sarebbero più modi per far funzionare il tutto, ovviamente dipende da come scrivi l'html o come vuoi che funzioni.
    Con un po' di pratica si migliora sempre

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.