Avatar billede 44fire44 Nybegynder
21. april 2008 - 00:15 Der er 6 kommentarer og
1 løsning

Validator validerer - men sender alligevel??

Hej folks

Jeg har en form som jeg validerer pt. med et java-script

<script type="text/javascript">
function validering(f) {
    if (f.ansvarnavn.value=='')    {       
        alert('Du skal udfylde navnet på den ordreansvarlige!');
        f.name.focus();
        return false;
    }
    if (f.ansvartelefon.value=='') {       
        alert('Du skal udfylde telefonnummeret på den ordreansvarlige!');
        f.adress.focus();
        return false;
          }

}
</script>


i min form har jeg så følgende:

<form onSubmit="return validering(this);" action="xxx.php?id=<?= $_GET[id] ?>" method="POST" name="form" id="form">
<input type="text" value="Navn på ordreansvarlig" name="ansvarnavn">
<input type="text" value="Telefon" name="ansvartelefon">
<input type="submit" name="send" value="Afsend ordre">
</form>

Problemet er så det at jeg ganske fint får et lille herligt vindue som popper op med beskeden 'Du skal udfylde navnet/telefonnummeret på den ordreansvarlige!' som jeg jo har bedt om - men når jeg trykker OK, så sender den alligevel formen istedet for at retunere til min form så dataen kan blive rettet/tilføjet

1. Hvordan retter jeg det så det virker?
2. Ville det være lige så nemt at validere med PHP?

Mvh
Kenneth
Avatar billede virtual1ty Nybegynder
21. april 2008 - 00:46 #1
1. Ved at validere med PHP!

Det er faktisk supernemt.

I toppen af din xxx.php smider du noget valideringskode ind:

if ($_POST['ansvarnavn'] == "") {
    print "Du skal udfylde navnet på den ordreansvarlige!");
    // send brugeren tilbage til form'en
    header('Location: form.html'); // form.html er navnet på den side, der indeholder din form
} else if $_POST['ansvartelefon'] == "") {
    print "Du skal udfylde telefonnummeret på den ordreansvarlige!";
    header('Location: form.html');
} else {
    // her skriver du den kode, der skal udføres, hvis form'en er udført korrekt
}

Håber du finder ud af det. :)
Avatar billede virtual1ty Nybegynder
21. april 2008 - 00:48 #2
Well.. Jeg sidder og sover, men klokken er jo også mange:

    print "Du skal udfylde navnet på den ordreansvarlige!");
    // send brugeren tilbage til form'en
    header('Location: form.html'); // form.html er navnet på den side, der indeholder din form

Brugeren vil aldrig nå at se den tekst, der bliver skrevet, eftersom brugeren bliver sendt tilbage med det samme. Så du kan enten (1) vælge at fjerne teksten eller (2) lade være med at sende brugeren tilbage automatisk:
Avatar billede virtual1ty Nybegynder
21. april 2008 - 00:51 #3
For pokker jeg sover.. Kom til at trykke på Send-knappen for tidligt.

Nå, men de to muligheder kommer her, vist som kode-eksempler:

#1:
// send brugeren tilbage til form'en
header('Location: form.html'); // form.html er navnet på den side, der indeholder din form

#2:
print "Du skal udfylde navnet på den ordreansvarlige! Klik <a href="form.html">her</a> for at gå tilbage";

Så må det vist være nok indlæg fra mig :D
Avatar billede frand Nybegynder
21. april 2008 - 00:55 #4
Jeg ville nok validere begge steder, javascriptet gør det mere brugervenligt.

f.ansvarnavn og f.ansvartelefon vs f.name og f.address
Avatar billede 44fire44 Nybegynder
21. april 2008 - 01:38 #5
virtual1ty: ja, det er lidt skidt hvis brugeren skal til at indtaste alle informationerne igen :( - ville ønske der var en lidt smartere måde at gøre det på med PHP

frand: Ja, dér var det vidst mig som sov - det var lige netop det som var problemet - tusinde tak

smid et svar begge to, så fordobler jeg lige antal points og smider i retning af jer begge
Avatar billede virtual1ty Nybegynder
23. april 2008 - 19:07 #6
Værsgo.
Avatar billede 44fire44 Nybegynder
12. maj 2008 - 12:06 #7
well - times up - virtual1ty får points :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester