Avatar billede bas Forsker
23. maj 2010 - 18:56 Der er 17 kommentarer og
1 løsning

Return false focus i en anden fil?

Hej

Jeg har en kontaktformular,der består af 2 filer.
Fil nummer et består af selve formularen i ren html, og fil nummer to består af php, der behandler de indtastede data.

Hvis et felt i formularen er tomt, vil php i fil nummer to skrive en besked herom + et link, der fører tilbage til fil nummer et.
Altså f.eks.:

"Indtast venligst dit navn".
+ tilbage-link

Er det for hver validering muligt at tilføje en return false,
der automatisk stiller cursoren (focus) i det pågældende felt i formularen i fil nummer et?

I fil nummer to har jeg sessions, som "husker" og viser det indtastede i formularen.
Avatar billede caspersch Nybegynder
23. maj 2010 - 19:31 #1
Ja det er, og der er mange måder at gøre det på. Humlen er at fil nr. 2 skal fortælle fil nr. 1 hvorfor et felt som den skal stille cursoren i, og på den måde danne det javascript som udføre handlingen.

Men... hvordan tjekker du op på data? Du finder vel alle fejl brugeren har lavet i formularen, og fortæller det på en gang?

Med venlig hilsen
Casper Schneidereit
Avatar billede majbom Novice
23. maj 2010 - 21:26 #2
du kunne også lave valideringen i javascript på side1 og først gå videre til side 2, når felterne indeholder brugbart/gyldigt data...
Avatar billede bas Forsker
24. maj 2010 - 13:34 #3
Hej

>Men... hvordan tjekker du op på data? Du finder vel alle fejl >brugeren har lavet i formularen, og fortæller det på en gang?

Jeg gør det godt nok enkeltvis for hvert felt, men kunne evt.
lave det om.
Casper, kan du henvise til et eksempel på, hvordan man kan gøre det.

Jeg tænker også på at lave valideringerne vha. JavaScript, men det bliver ofte frarådet, da man kan slå JavaScript fra i sin browser.
Men ok, det er kun en kontaktformular til privat brug - hvor farligt kan det være? ;-)

Men hvis det ikke er meget omstændigt kunne  jeg måske godt finde på at afprøve den anden mulighed.

Venlig hilsen
Martin
Avatar billede olebole Juniormester
24. maj 2010 - 15:51 #4
<ole>

"Men ok, det er kun en kontaktformular til privat brug - hvor farligt kan det være?" >> Hvis du er ligeglad med, om jeg tømmer hele din database, kan du sagtens nøjes med at validere med JavaScript  =)

/mvh
</bole>
Avatar billede olebole Juniormester
24. maj 2010 - 15:56 #5
- men af hensyn til brugeren kan du jo sagtens kombinere splazz' forslag i #2 med serverside validering.

Du skal altid validere brugerinput på serveren, inden du bruger det til noget somhelst - men det forhindrer dig ikke i at bruge JavaScript til at gøre livet lettere for brugeren
Avatar billede majbom Novice
24. maj 2010 - 19:39 #6
det var bestemt heller ikke ment som at der kun skulle valideres med javascript, men jeg synes bare at det er nemmere at se om indholdet kan bruges, inden man bliver sendt videre til næste side, så er man fri for at gemme det indtastede data og fylde det i felterne igen ved returnering til form-siden efter mislykket validering på serveren.

selvfølgelig skal data ALTID valideres på serveren uanset om det er blevet valideret af javascript eller ej!
Avatar billede olebole Juniormester
24. maj 2010 - 20:02 #7
splazz >> jeg er ikke i tvivl om, hvad du mener - men det så ud til, spørgeren var  ;o)
Avatar billede majbom Novice
24. maj 2010 - 20:15 #8
bare i orden ole :)
Avatar billede bas Forsker
25. maj 2010 - 17:27 #9
Hej

Lige for at følge lidt op...

I min kontaktformular bliver der ikke skrevet noget til en
database. I fil nummer to sker der følgende:

1. Der sættes sessions for at huske og vise, hvad der er blevet indtastet i felterne i fil nummer et.

2. Der valideres for korrekte indtastninger

3. Hvis alt er udfyldt korrekt, vises det indtastede på skærmen samt sendes til mig (webmaster)

>Humlen er at fil nr. 2 skal fortælle fil nr. 1 hvorfor et felt >som den skal stille cursoren i, og på den måde danne det >javascript som udføre handlingen.

Er der nogen, der kan henvise til et (simpelt)eksempel på dette?

>Du skal altid validere brugerinput på serveren
Det ved jeg vist ikke, hvordan man gør.

Jeg overvejer kraftigt at gå tilbage til i højere grad / i første omgang at bruge Javascript til valideringer.

Det gør det vist lidt lettere for mig at overskue.
Dermed kan jeg måske også nemmere lave de ting jeg gerne vil.
Avatar billede majbom Novice
25. maj 2010 - 18:34 #10
hvis du SKAL have fil2 til at fortælle fil1 hvilket input der skal fokuseres, skal du sende feltets navn eller id med, det kan du gøre sådan her:

header("Location: fil1.php?felt=id_på_felt_fer_skal_fokuseres");

og i fil1 skal du f.eks.

document.getElementById('<?php echo $_GET['id_på_felt_der_skal_fokuseres']?>').focus();
Avatar billede bas Forsker
25. maj 2010 - 21:07 #11
Ok, vil det sige, at....

header("Location: fil1.php?felt=id_på_felt_fer_skal_fokuseres");
skal stå for hver if-sætning / for hvert felt i fil nummer to?

f.eks.

(ved godt, at syntaksen ikke lige er korrekt her)
elseif $navn < 2 {

echo "Indtast venligst dit navn";
header("Location: fil1.php?felt=id_på_felt_fer_skal_fokuseres");
}

Nå nej, så skal Indtast venligst dit navn vel i stedet stå
i fil nummer 1?

Hmm, måske bliver det for omstændigt i forhold til mine evner,
men jeg tror jeg begynder at forstå princippet lidt.
Avatar billede majbom Novice
26. maj 2010 - 12:40 #12
ja, altså jeg forstår ikke hvorfor du ikke gør det på side 1?

så er du fri for at sende frem og tilbage, det er meget nemmere - som sagt skal der stadig valideres på serveren efterfølgende.
Avatar billede bas Forsker
26. maj 2010 - 15:50 #13
Ja, jeg er vist gået over åen efter vand.

Jeg tror også, at jeg laver det om til at validere med JavaScript i fil nummer 1.
Måske laver jeg det hele i den samme fil.

> som sagt skal der stadig valideres på serveren efterfølgende.

Hvordan gør jeg dette? Gør jeg det ved at bevare mine php valideringer i fil nummer to efter, at jeg har valideret med JavaScript?

Som sagt er der ikke tilknyttet en database.
Avatar billede majbom Novice
26. maj 2010 - 16:49 #14
ja jeg vil bare beholde dine valideringer i php-koden, hvis den allerede opfylder dine krav
Avatar billede bas Forsker
26. maj 2010 - 18:00 #15
Mange tak for jeres indlæg.

Jeg prøver at kigge på mine filer på en frisk og tilføjer validering med JavaScript i fil nummer et.

splazz, vil du have points?

Du er kommet med nogle brugbare kommentarer og løsningsforslag.
Ja, det er I andre også ;-)
Avatar billede majbom Novice
26. maj 2010 - 18:44 #16
synes da også de andre skal have mulighed for at komme med et svar, da de også er kommet med noget godt input
Avatar billede bas Forsker
26. maj 2010 - 18:47 #17
Fornemt - jamen vi lader den da bare stå åben lidt og ser, om pointene skal fordeles ;-)
Avatar billede olebole Juniormester
27. maj 2010 - 13:15 #18
Jeg hopper i hvertfald over  ;o)
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