Avatar billede hoell Nybegynder
09. oktober 2003 - 18:31 Der er 8 kommentarer og
1 løsning

form i flere trin i samme fil

Hej er det i PHP muligt at oprettete tilmeldingsprocedure, således man først bliver præsenteret for en form, for dernæst at blive præsenteret for de indtasetde data, for endelig bekræfigelse. Jeg vil gerne holde det i en fil, er det muligt? evt. med en include af formen. /Hoell
Avatar billede sukos Juniormester
09. oktober 2003 - 18:53 #1
Du kan evt. bruge sessions, eller først include de forskellige forms efter submit.
Avatar billede hoell Nybegynder
09. oktober 2003 - 19:07 #2
Hej sukos vil det ikke kræve at jeg laver en frygtlig masse filer, som jeg includer efterhånden?
Avatar billede sukos Juniormester
09. oktober 2003 - 19:09 #3
johh, ville det jo nok, og er nu selv til den med sessions.
altså hvis ikke en session er sat, vis dette, og ellers vis dette o.s.v.
Avatar billede hoell Nybegynder
09. oktober 2003 - 19:52 #4
Er lidt blank på dette lidt til at komme i gang med sukos?
Ofte skal der bare lidt mere end et tips til for at komme i gang, det er lidt lige som først at få ideen, der er den sværeste. håber på et lille eksempel ;)
Avatar billede tjens Nybegynder
09. oktober 2003 - 23:09 #5
<html><body>
<?php
$second = $_GET["second"];
if  ($second) {
    opdatering();
}
else { // Formularen vises kun hvis det ikke er anden gang der sendes ind.
$first = $_GET["first"];

if  ($first == 'send ind')
    visform("hidden");
  else
    visform("text");

} // end if-else second
echo '</body></html>';

function visform($itype) {
global $first;
echo '<form name="indmeld" action="'.$_SERVER['PHP_SELF'].'" method="GET">';
echo ' Fornavn <input type="'.$itype.'" name="fornavn" value="'.$_GET[fornavn].'" >';
if ($itype == "hidden")
    echo '<b>'.$_GET[fornavn].'</b>';
echo "<br>\n";
 
if  ($first == 'send ind')
    echo "<br><input type='submit' value='Bekræft' name='second'>".
    "<br><input type='submit' value='tilbage' name='fortryd'>";
else
    echo "<br>\n<input type='submit' value='send ind' name='first'>";

echo '</form>';
}

function opdatering() {
echo "<h4>OK: Så har vi dig $_GET[fornavn] !!</h4>";
echo '<a href="'.$_SERVER['PHP_SELF'].'">Meld din moster ind også!</a>';
}
?>
Avatar billede hoell Nybegynder
09. oktober 2003 - 23:19 #6
Hej tjens lige et spørgsmål, hvad gør følgende?  $_SERVER['PHP_SELF']Starter den siden forfra lide lige som en refresh-ting agtig noget!

function visform($itype) {
global $first;

Hvad sker der lige her? Den er jeg ikke helt med på!

Der hvor du skriver opdatering () er det her jeg skal skrive det hele ind i DB, når vedkomne bekræfter?
Håber ikke det er for mange spm.
Avatar billede tjens Nybegynder
09. oktober 2003 - 23:33 #7
PHP_SELF er navnet på scriptet selv. Jeg glemmer altid at rette det, hvis jeg kopierer eller renamer en php fil, og så er det jo dejligt, at den kalder sig selv, når brugeren i browseren klikker på en knap.

Global udvider bare variablens $first's scope, så den også kan bruges internt i funktionen. Ellers kender funktionen ikke en variabels værdi selvom den er fra starten af scriptet.

Ja. I opdatering() skal du behandle dataene og skrive til DB.
Avatar billede tjens Nybegynder
09. oktober 2003 - 23:35 #8
Har du kopieret det hele ind i en fil i din webserver og testet det?
Avatar billede hoell Nybegynder
09. oktober 2003 - 23:50 #9
Ja det virker fint, men gerne forstå, hvad der sker, ellers lærer jeg jo ikke noget! vel, men jeg tror jeg har fanget den tak for hjælpen, nu skal jeg bare lige have den tilpasset. det snød mig en hel del at du også lige havde lavet en function der hedder visform. Jeg er ikke helt dus med functioner, men det kommer vel. tal for hjælpen i hverfald.

/Hoell
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