Pagina 1 di 1

Evitare perdita dati in uscita da form

Inviato: 17 nov 2022, 10:29
da Giovannino
Ciao a tutti,
mi piacerebbe evitare il problema di quando un utente inserisce o modifica dei dati in un form e poi per errore o altro esce con tasto precedente o in altro modo senza fare il salvataggio .
C'è qualche funzione automatica che può evitare che questo succeda ?
Grazie

Re: Evitare perdita dati in uscita da form

Inviato: 17 nov 2022, 13:46
da Fabio
Ciao,
in fase di inserimento di un nuovo record non mi viene in mente alcuna soluzione automatica.
Forse con codice Javascript scritto a mano si potrebbe aprire un alert del tipo "Dati non salvati, sei sicuro di voler cambiare pagina?".

In caso di aggiornamento è più semplice: potresti eseguire una funzione di aggiornamento sull'evento AJAX onchange di ogni singolo campo.
In qiuesto modo anche cambiando pagina senza salvare i dati sarebbero aggiornati.

Re: Evitare perdita dati in uscita da form

Inviato: 17 nov 2022, 14:00
da Giovannino
Ciao Fabio e grazie della rispo.
Stavo provando ad applicare questa soluzione che ho trovato in vecchi post del forum.
Ma purtroppo non cambia nulla . Con tasto redir a precedente form/grid perdo i dati modificati sia in insert che edit.
Purtroppo io non capisco se il codice qui sotto è standard o se deve esser modificato per la mia form.

Add javascript for Form->OnSubmit so there will be no prompt if the record is saved:

function sc_form_onsubmit()
{
Haschanged = 0;
}



For every field that you want to “monitor” add javascript Field->OnChange

function sc_MyField_onchange()
{
Haschanged = 1;
}

OnApplicationInit
//Close PHP
?>
<script>
var Haschanged = 0;
if(window.addEventListener)
window.addEventListener('beforeunload', function( event ) {if(Haschanged == 1) event.returnValue = 'Message to display when leaving';});
else
window.attachEvent('beforeunload', function( event ) {if(Haschanged == 1) event.returnValue = 'Message to display when leaving';});
</script>
<?php
//Reopen PHP

Re: Evitare perdita dati in uscita da form

Inviato: 01 dic 2022, 12:15
da rino
Giovannino ha scritto: 17 nov 2022, 10:29 Ciao a tutti,
mi piacerebbe evitare il problema di quando un utente inserisce o modifica dei dati in un form e poi per errore o altro esce con tasto precedente o in altro modo senza fare il salvataggio .
C'è qualche funzione automatica che può evitare che questo succeda ?
Grazie
non per polemica

se ho capito bene si tratta del uso del tasto 'indietro' posto sul menu del browser .
NON esiste una vera soluzione per le finestre non popup e il motivo mi pare ovvio va quindi responsabilizzato l'utente, in fondo qualcosa dovrà pur fare o si pretende che siano tutte macchine?
Polemiche a parte l'utente deve essere libero di fare le sue scelte e di risponderne , ci sono dei limiti ai controlli e a certi automatismi che si possono attuare specie in ambienti "aperti" come quelli dei browser o no?

Re: Evitare perdita dati in uscita da form

Inviato: 01 dic 2022, 14:17
da Giovannino
Ciao Rino,
grazie. Sono d'accordo ma come dicono gli inglesi ... è meglio un approccio idiot proof ;-)

Se può essere utile a qualcuno nel codice del bottone di Precedente ho inserito questo.

var ans = confirm("Vuoi salvare le tue modifiche ?");
if(ans == true)
{
nm_atualiza('alterar');
//return false;
window.location.replace("../grid_pipeline/");
}
else
{
window.location.replace("../grid_pipeline/");
}