Avatar billede compac Seniormester
23. marts 2009 - 17:37 Der er 4 kommentarer og
1 løsning

Godkend checkbox og videre til næste side

Jeg har en her noget kode. Meningen er, at man skal afkrydse i en checkbox, hvis man har godkendt, og så skal siden gå videre til den følgende side. I modsat fald kommer der "alertboxe" frem.

<?php
echo "<pre>";
if (isset($_POST['accepter'])) {
    //videre til næste side
}
else {
if (isset($_POST['accikk'])) {
   
echo "<SCRIPT>alert(\"Du har ikke accepteret!!\"); opener.location.href='$PHP_SELF'; self.close();</SCRIPT>";
}
else {
echo "<SCRIPT>alert(\"Du har ikke afkrydset noget felt!\"); opener.location.href='$PHP_SELF'; self.close();</SCRIPT>";
}
}
echo "</pre>";
?>
<html>
<head>
</head>
<body>
<form action="<?php $_SERVER[PHP_SELF]?>" method="post">
    Kan du acceptere ovennævnte vilkår? <br>
    <input type="checkbox" name="accepter" value="accepter"> jeg accepterer <br>
    <input type="checkbox" name="accikk" value="accikk"> Jeg accepterer ikke <br>
 
    <input type="submit" value=" OK ">
</form>
</body>
</html>

Hvilken kode skal jeg lægge ind, for at få siden til at gå videre når brugeren har afkrydset "Jeg accepterer"??
Avatar billede Slater Ekspert
23. marts 2009 - 17:53 #1
Du skal normalt bruge:

header ('Location: nyside.php');

- Men header-funktionen kan kun bruges når der ikke allerede er blevet udskrevet noget, så du må ikke skrive echo '<pre>'; foran. Det bliver du nødt til at flytte længere ned i koden.
Avatar billede compac Seniormester
23. marts 2009 - 20:19 #2
OK!
Jeg har nu helt sløjfet <pre> - sætningerne, og rykket php-afsnittet ned under </html>  koden.
Når jeg går ind på siden første gang, kommer den straks med meddelelsen om, at der ikke er afkrydset noget felt.
Hvordan får jeg undertrykt den, så den først kommer efter der er blevet trykket på OK?
Avatar billede Slater Ekspert
23. marts 2009 - 22:07 #3
Det kan du f.eks. gøre ved også at give din submit-knap et name, f.eks. <input type="submit" value=" OK " name="submit">
- og så spørge om den er sat i PHP. Hvis den er det, har du trykket på knappen.

Altså:
if (isset($_POST['submit'])) {
  <alt din anden kode her>
}


Desuden: jeg ved ikke om du kom til at sige forkert, men al PHP koden skulle op i toppen, ikke i bunden. Der må ikke udskrives noget HTML-kode før du bruger en header() funktion, så PHP'en skal være allerførst på siden.
Avatar billede compac Seniormester
23. marts 2009 - 22:28 #4
Alletiders - tak for hjælpen læg et svar.
(jo, jeg havde lagt php-koden øverst)
Avatar billede Slater Ekspert
23. marts 2009 - 22:33 #5
Så gerne :)
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