Bertel Lund Hansen skrev:
> Nu vil jeg hitte ud af det med en form og PHP. Det meste lader
> til at være ret nemt, men jeg har et par spørgsmål:
>
> Kan man validere input fra samme side som formen står på - altså
> så brugeren ikke ser siden skifte?
> Jeg har en valideringstest, og hvis den fejler, skal man vende
> tilbage (hvis man altså har skiftet side), helst uden at
> indtastningerne er slettet. Hvordan gør man det?
> if ($okay==false) {
> ???
> };
der er efter min mening to relativt identiske muligheder:
du kan lade action på formen gå til samme side.
Når siden kaldes checker du REQUEST arrayet og sætter tomme values ind i
alle variabler der ikke er oprettet. Herefter validerer du (øverst på
siden, inden noget som helst er printet ud)
Hvis input validerer så samler du det i et array eller lignende og
sender med til den side hvor du skal bruge det - header('Location:....
med querystring på kan bruges)
Hvis input ikke validerer så skipper du videresendingen og skriver siden
ud idet du undervejs brokker dig over det manglende.
I formen sætter du altid variablerne ind som value, når siden tilgås
første gang er de initieret indholdsløse i head, derefter får man det
man skrev sidst...
Løsning to går ud på at sende over på en anden side, hvor man validerer
og enten arbejder videre eller sender retur til formularsiden idet man
medsender data. Den er måske smartere fordi man så kan undgå at vise en
URL med valide data frem, det kan diskuteres.
Begge metoder burde kunne gøres et uendligt antal gange, ind til siden
validerer.
Det er i øvrigt metode 1 jeg har brugt på
<
http://www.kongskilde.com/soil/e-pages/index_larebog.html> (hvor jeg
kun har lavet den side med beregningen, ikke noget af resten
)
mvh
Jesper Brunholm