Newsgroup: it.comp.www.asp
Titolo: Mantenere il valore dei campi inseriti

Ciao a tutti, da un paio di settimane mi sono messo a studiare ASP & C.
Vorrei fare un FORM con dei campi di input ed un tasto "Salva" che ,
quando premuto di aggiunge questi campi in una tabella Access come
nuovo record. Nessun problema fino a qui.
MA, e qui viene il bello, prima di fare la write vorrei controllare la
validità dei campi e, in caso di errore, ripresentare il FORM con tutti
i dati inseriti ancora presenti e non con i valori azzerati. Aggiungo
che la routine di controllo dei campi deve girare sul server in quando
devo andare sul database.
Spero di essermi spiegato.
Grazie in anticipo per l'aiuto. Ciao e buon lavoro.
--
Francesco Marcolini
fmarc...@stock-spa.it
Sent via Deja.com 
http://www.deja.com/
Before you buy.

 devo andare sul database.
Io ho risolto con
respose.write "<script language = ""javascript"">history.back(1);</script>"
magari preceduto da un window.alert.

Usa Javascript o Vbscript (meglio il primo): questo genere di controlli,
oltre ad essere estremamente laborioso per il server (insomma...) in quanto
richiede la presenza di una pagina-filtro tra quella mostrata all'utente e
quella contenente l'applicazione (vabbe' che si puo' fare un reload della
pagina stessa con un "if se almeno 1 campo e' pieno passa alla routine di
controllo", ma concettualmente e' sempre una pagina in piu')
Invece affrontando la cosa "lato client" hai l'innegabile vantaggio di non
impiegare alcuna risorsa (del server) e di lasciare la pagina cosi' com' e'.
Se il form e' unico puoi mettere su un bel ciclo attivato dal pulsante
submit (che non fa submit per niente, ma avvia la funzione) e se gli script
di controllo dicono che e' tutto ok passi al comando
"document.forms[0].submit() altrimenti alert('Verifica se ci sono
errori') ).
Gli script di controllo possono dirti se
1) La stringa contiene solo valori numerici
2) La stringa contiene solo valori alfabetici (o un insieme di caratteri
predefinito)
3) La stringa e' diversa da null (ovviamente).
Ed ecco lo script di controllo (in javascript)
<script language=javascript runat=client>
function verifica(dati){
///definizione dell'insieme di validita'
var numStr="0123456789";
var conta=0;
///confronto carattere per carattere
for (var i=0; i<dati.length; i++){
thisChar=dati.substring(i, i+1);
if (numStr.indexOf(thisChar)!= -1){
conta++
}
}
///restituzione delle risposte
if (conta==dati.length){
return(true)
}
else{
return(false)
}
}
</script>
Questo script confronta uno alla volta i caratter della stringa passata alla
funzione con un insieme di caratteri di riferimento. Se al posto dei numeri
(in numStr) ci metti l'insieme dei caratteri consentiti (potrebbe essere la
sola @ per esempio) ecco che il controllo viene effettuato sull'insieme
indicato. La funzione restituisce 2 valori true e false. Se inverti le
risposte ecco che lo script restiutira' false se il carattere e' compreso
nell'insieme predefinito (per esempio se non vuoi i punti. e/o le virgole
,,, o che so io...), ma non ti dico come ho fatto ad accorgermi di questa
cosa ^___^*.
Lo script principale della pagina dovra' prendere uno per uno i campi del
form (ogni form e' un array i cui elementi sono i campi, ognuno con al sua
bella proprieta' value quindi il controllo lo farai cosi'
for(var n=0; n<=document.forms[0].length; n++){
var check=0;
check=verifica(document.forms[0].elements[n].value);
if (!check){
alert('verifica ancora i campi c\'è un errore');
break
}
}
se i controlli sono piu' d'uno (ti occorre un campo alfabetico, uno numerico
uno che sia alfabetico ma con la @ ecc ecc ) ti conviene capire bene di cosa
hai bisogno e progettarti lo script adatto. Comunque il controllo e' bene
farlo sulla macchina dell'utente: non c'e' modo migliore di lasciare in pace
quel che ha scritto.
'guri
Nettuno


fmarc...@stock-spa.it