Avatar billede michaelgm Nybegynder
19. november 2007 - 18:57 Der er 6 kommentarer og
1 løsning

Validerering og fejlmeddelser

Jeg sidder med en form med 90 spørgsmål.. Har nogen enkle input der skal være udfyldt. Jeg har siddet og leget en del med det.. Mit problem er hvordan jeg skal tjekke om de forskellige felter er udfyldt. Uden at alle checkboxe og input bliver nulstillet fordi man submit'er formen. Er der en måde man kan beholde input og checkboxe på? eller skal der tjekkes inden der bliver submit'et med js?

Nogen der har nogen eksembler på hvordan man kan melde fejl tilbage uden at man skal til at udfylde det hele igen?
Avatar billede lakridserne Nybegynder
19. november 2007 - 19:07 #1
dataene fra felterne bliver automatisk gemt i nogle globale variabler - afhængig af om du bruger get eller post.

hvis det er get hedder variablen: $GET['navn']; //navn=det navn du gav feltet
hvis det er post hedder variablen: $POST['navn'] //navn=kig ovenfor

håber det hjalp dig, ellers kan du jo bare skrive igen.
Avatar billede mahler Nybegynder
19. november 2007 - 19:16 #2
Du POST'er sikkert din formular. Prøv at ændre det til et GET request - det plejer at gøre en forskel. POST-requests GØR normalt noget, og derfor vil de fleste browsere helst ikke cache forms for meget.

(Baggrundsinfo: http://www.w3.org/2001/tag/doc/whenToUseGet.html )
Avatar billede michaelgm Nybegynder
19. november 2007 - 19:21 #3
Den del er jeg helt med på .. Er os meget længere end det..
Jeg har mine spørgsmål i multiarray med $arr[gruppenr][svar]
og det løber jeg så igennem.. der er jo ingen grund til at skulle holde styr på 90 variabler når man kan køre det igennem en løkke? .. Mit problem ligger i at når den opdatere er det som at starte forfra.. hvis feks isset($_POST['navn']) er falsk? ..

Mit spørgsmål var så:
Hvordan man kunne holde på svarene i min form enten ved at valiere inden med js og så give fejlmeddelse.

eller efter med php og så holde på svarene i min form
Avatar billede lakridserne Nybegynder
19. november 2007 - 19:57 #4
så kunne du lægge svarene i hver sin varibel, og sætte feltet til at have værdien af variblen som standard:

<input type="type_du_vil_bruge" name="navn_du_vil_bruge" value=$variabel_du_har_opbevaret_dine_data_i">

Lakridserne
Avatar billede michaelgm Nybegynder
19. november 2007 - 20:36 #5
Ja den kunne jeg godt regne ud.. Men der må da være et bedre alternativ? end at skulle sidde og difinere 90 forskellige variabler?

Kunne være nemmere at den validerede om felterne var tomme på 6 text indput med js og tilbage melde fejl. inden den submit'er formen?

Er der ingen der har et forslag til hvordan det kunne se ud?
Avatar billede michaelgm Nybegynder
19. november 2007 - 20:49 #6
Jeg har fundet en løsning:

function form(myform) {
    if (myform.felt1.value.length == 0) {
        alert('Du bedes venligst udfylde felt1.');
        myform.felt1.focus();
        return false;
    }

    if (myform.felt2.value.length == 0) {
        alert('Du bedes venligst udfylde felt2.');
        myform.felt2.focus();
        return false;
    }

    return true;
}

<form name="trin1" method="GET" action="" onsubmit="return form(this)">
Avatar billede michaelgm Nybegynder
19. november 2007 - 20:51 #7
Ved godt det ikke er php. Men er alternativet de 90 variabler man skal sidde og skrive 3 gange.. Et i name og et i value og så før $_POST .. Vil jeg heller bruge js. Selvom jeg har hørt man kan slå det fra i sin browser?
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