20. april 2005 - 14:51Der er
6 kommentarer og 1 løsning
history.go(-1) og husk værdier
Hej
I forbindelse med en formular hvor man kan taste forskellige oplysninger ind, har jeg to sider. Den første side indeholder min formular, og den næste side indeholder forskellige valideringsregler. Man ser aldrig side to hvis det man har indtastet ikke opfylder mine krav, da jeg bruger fremgangsmåden som ses nedenfor:
if ($input < 18 or $input > 120) { echo "<script type=\"text/javascript\">alert(\"Indtast gyldig værdi!\");history.go(-1)</script>"; exit; }
Hvis man skriver forkert i et af felterne, og man bliver sendt retur, skal den gerne huske værdierne i de andre felter. Det virkede også fint på et tidspunkt, men nu sletter den de forskellige værdier.
<script type="text/javascript"> function valider(f){ if(!f.minInput.value.match(/^\d+$/) || +f.minInput.value < 18 || +f.minInput.value > 120 ){ alert('Du skal være over 18 for at benytte dette site !-)'); f.minInput.focus(); return false; } return true; } </script>
roenving-> bliver det ikke valideret client-side istedet for server-side når man bruger den metode du viser?
Jeg har valgt at lave min validering vha. phpLib, som netop har lavet en klasse der kan anvendes til validerings af formularer. Se eksempel nedenfor:
<?php include("oohforms.inc");
$myForm = new form;
//navn $myForm->add_element(array("name"=>"name", "type"=>"text", "size"=>"20", "minlength"=>"4", "length_e"=>"Navn skal være mindst 4 anslag", "valid_e"=>"Navn kan ikke indholde numre!", "valid_regex"=>"^([a-zA-Z ])*$" ));
//tjek om formen er submittet if (isset($submit)) { //tjek om der er fejl i data if ($err = $myForm->validate()) { $myForm->load_defaults(); } else { $myForm->load_defaults(); $myForm->freeze(); $err = "succes!"; } }
Jo, ved at bruge $myForm->load_defaults(); i tilfælde af at der er fejl, bibeholdes det brugeren har tastet!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.