Salvataggio automatico

michemail

Nuovo Utente
27 Ago 2008
4
0
0
Ciao a tutti,

una cortesia, io ho una pagina php che contiene un form (form.php) i cui dati nei campi sono recuperati da un database MySql, una pagina tipo questa:

<?php
echo "<form action='update.php?id=$id' method='POST'>";
echo "<input type='text' name='nome' value='$nome'><br>";
echo "<input type='submit' value='Aggiorna'>";
?>


Ovviamente la pagina del form non è così strutturata, avrà circa una ventina di campi e select, invece update.php conterrà il codice con cui verranno aggiornati campi dal database, e fino a qui non ho alcun problema.

Il mio dubbio è che se per caso la persona che è sulla pagina form.php chiude la pagina o la cambia, convinto di aver salvato le modifiche dei dati ed in realtà non l'ha fatto, c'è un modo per verificarlo e nel caso fargli venire fuori un avviso del tipo "ATTENZIONE I DATI SONO STATI MODIFICATO, SALVARE LE MODIFICHE EFFETTUATE?", in modo che la persona scelga se salvare o no i dati inseriti?

Intanto vi ringrazio per la cortesia, se avete bisogno di maggiori dettagli (visto che il mio italiano a volte non è precisissimo :o ) chiedete pure!

Ciaoooo

Michael

Mi era stato detto di mettere un Onchange sui campi ma non ho la minima idea di come si faccia, mi potete aiutare?

Grazie mille

Ciao
 
Alla fine mi servirebbe sapere come fare in modo che alla chiusura della finestra o al cambio url javascript recperi i dati che sono presenti al momento della chiusura della finestra, si connetta a mysql e verifichi se i dati sono uguali a quelli nel database, se sono uguali procede alla chiusura/cambio url, in caso contrario fare apparire un alert che dica che i dati sono differenti e chieda all'utente se intende salvare le modifiche o meno.

Le mie pagine sono tutte in php, magari facendo un codice incrociato qualcosa si può fare, non lo so, io non conosco nulla di javascript ed è un cosa che mi serve al lavoro da fare in breve tempo.

Qualcuno riesce a darmi una mano a fare questo controllo dati?

Grazie mille a chiunque mi da una mano
 
Io farei cosi:

1. il form deve trovarsi in un popup

2. assegna un "name" al bottone

3. alla pressione del bottone recupererai in post il valore del bottone, quindi vuol dire che i dati sono stati aggiornati

4. all'evento onunload del popup, se il bottone non è stato premuto (lo sai perchè hai recuperato il "name" del bottone: se il valore è vuoto non è stato premuto) lanci un alert o un confirm, altrimenti si chiude la pagina e basta

5. oltre all'alert, siccome penso che la finestra si chiuda (non ho provato) dovresi rilanciare il window.open, passando il nome del file e l'id del recor corrente, come specificato nell'action del tuo form

Spero di essere stato chiaro. Fammi sapere :fonzie:
 
scusami ma io di Javascript ne so molto poco, se non nulla, diciamo che se io nel popup inserissi il seguente form:

<form action='update.php?id=$id' method='POST'>
<input type='text' name=nome value='$nome'><br>
<input type='submit' name='invio' value='Aggiorna'>
</form>


Come faccio a verificare se è stato inviato il form?

Che cosa devo scrivere nel tag <boby> esattamente?

Scusami se ti faccio mille domande ma purtroppo come ti ho detto non so quasi niente di javascrit.

Grazie mille

Ciao
 
Infetti non ti dicevo di risolvere il problema con Javascript: usi PHP, vero? Ok, usa PHP per renderti conto se il form è stato inviato.

Quando fai il controllo sul modulo vai a controllare, ad esempio, che il campo nome non sia vuoto; se è vuoto allora il form è stato inviato.

Anche se devi verificare che il form sia corretto...

Quandi fai una cosa del genere (è un esempio, poi lo devi adattare tu alle tue esigenze):

<?
$nome = $_POST["nome"];
if ($nome == "")
{
echo "Inserisci il nome!";
$errore = 1;
}
else
{
// Fai quello che devi fare, ad esempio inserire nel database
$errore = 0;
}
if ($errore = 0) // Vuol dire che il modulo è stato inviato correttamente
{
?>
<script type="text/javascript">
alert("Tutto apposto!");
window.close();
</script>
<?
}
?>

Ogni volta che c'è un errore (in eventuali "else if") imposta $errore = 1. Quando è tutto ok $errore deve valere 0.

Fammi sapere.
 
Grazie mille!!!!!!!!!!!!
Provo subito a farlo!!

Ti faccio sapere appena l'ho finito!

Grazie ancora

Ciao
 

Discussioni simili