Come si fa a salvare i valori di un campo in un form con validazione senza riscriverli ogni volta dopo un submit?
Come si fa a salvare i valori di un campo in un form con validazione senza riscriverli ogni volta dopo un submit?
ehr, devi usare il linguaggio lato server, non javascript, facendo in modo che, quando sottometti la form, il server si salvi i dati da qualche parte (un DB sarebbe buona cosa) e ritorni un id o quel che vuoi per far popolare i campi della form all'apertura della pagina.
I DON'T Double Click!
però se prima di salvare i dati sul db, non ho inserito qualche valore nei campi del form, invece di riscrivere di nuovo tutti i campi, come faccio a salvare i valori già inseriti precedentemente?
non so se mi sono spiegato
ciao
Quando avviena la validazione di un form può capitare che ho dimenticato di inserire alcuni valori oppure alcuni di questi sono sbagliati. Quando faccio il submit, vorrei che i valori già inseriti fossero memorizzati nei campi del form, senza dover reinserire tutto d'accapo.
ciao
Ho capito casa vuoi dire, che se l' Utente fa un submit che non viene convalidato (validazione lato server), si ritrova con tutti i campi resettati; e te invece vorresti si ritrovasse quello cha ha scritto per il momento.
Io faccio così, attribuisco ad ogni VALUE dei campi una variabile php che posso lasciare vuota "" (stringa di testo con nessun carattere), faccio in modo che php mi stampi questa variabile nell' esecuzione dell' HTML, supponiamo che la var si chiama var $campo;
value="<?php echo $campo; ?>"
Queste variabili le piazzo in alto, più sopra di un if(isset()) statement che dopo, se è stato eseguito il submit, me ne cambia il valore in quello che recupera dal campo di testo:
Codice PHP:
<html>
<head>
<title>temporary saving text </title>
</head>
<body text="#FFFF90" bgcolor="#000090">
<h1>Straystudio</h1>
<?php
$campo = "";
if(isset($_POST['invio'])){
$campo=$_POST['campo'];
};
?>
<div align="center">
<form method="post" action="<?php echo $PHP_SELF; ?>">
<input value="<?php echo $campo; ?>" type="text" name="campo">
<input type="submit" name="invio">
</form>
</div>
</body>
</html>
grazie1000![]()
Si può fare anche un controllo in solo JavaScript (validazione lato client) e questo, non fa perdere i dati sinora scritti, per il semplice fatto che non ricarica la pagina; quindi è anche molto veloce nell' esecuzione e risparmia invii di richieste al server.Originariamente inviato da vehuel
però se ..., non ho inserito qualche valore nei campi del form, ..
Il submit allora avverrà tramite funzione JS .submit() e il pulsante di submit diventa un comune button che richiama la function.
Ho un esempio che avevo già elaborato, più vasto, in un Forum USA e qui te ne posto un sunto; si controlla se l' Utente avesse tralasciato un campo, e c'è anche una diversa colorazione per quel campo:
codice:<html> <head> <title>JS fields check-up</title> <script type="text/javascript"> var warnCol = "#ffff00"; //warning color function DataCheck(){ var lack=false var el = document.forms['scheda'] el.Name.style.backgroundColor = "#ffffff"; el.Address.style.backgroundColor= "#ffffff"; el.Email.style.backgroundColor = "#ffffff"; if (el.Name.value=="" ){el.Name.style.backgroundColor =warnCol; lack=true}; if (el.Address.value==""){el.Address.style.backgroundColor=warnCol; lack=true}; if (el.Email.value=="" ){el.Email.style.backgroundColor =warnCol; lack=true}; if (lack==true){ alert("Please fill out all informations");} else { el.submit(); }; } </script> </head> <body bgcolor="#d0d0d0"> <h1>JS Validation</h1> <form action="<?php echo $PHP_SELF; ?>" method="post" name="scheda"> Name <input type="text" name="Name" size="50" /> </p> Address <input type="text" name="Address" size="50" /></p> Email Address <input type="text" name="Email" size="50" /> </p> <input type="button" value="subscribe" onClick="DataCheck()" /></p> </form> </body> </html>