nadat ik op de submit button geklikt heb, moet er een andere pagina getoond worden waarin een switch staat:
<?php
switch ($_POST['route'])
{
case "a13":
?>
Als ik de pagina met het formulier verstuur om naar een andere pagina te gaan krijg ik de melding:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
Eerst met isset() controleren of een variabele, $_POST['route'] in dit geval, wel bestaat. Zo ja, dan ga je er iets mee doen. Zo nee, dan ben je snel klaar...
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST['route'])){
header("location:http:route.php");
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<BODY>
<form action="" name="" method="post">
<h3>Routebeschrijving</h3>
<input type="radio" name="route" value="a20"<?php if (isset($_POST['route']) && $_POST['route'] == 'a20') {echo "checked";}?>/>
Met de auto, vanaf richting Utrecht (A20)<br/>
Tip: Hou de logica en de output uit elkaar. Dat maakt je script een stuk overzichtelijker en beter onderhoudbaar. Voorbeeldje:
<?php
error_reporting(E_ALL);
if(isset($_POST['route'])){
switch($_POST['route'])
{
case 'a20':
$output = "Hier is mijn route";
break;
default:
$output = "Onbekende route";
break;
}
}
else {
$output = 'Geen waarde opgegeven';
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<BODY>
<?php echo $output; ?>
</BODY>
</HTML>
Zowel de html-code als de php-code is zo een stuk overzichtelijker. Tevens kun je zo nooit problemen met sessies en/of cookies krijgen, die worden gebruikt en gezet in het gedeelte voor de output.
Ik heb 2 pagina's waarbij output de route.php pagina is.
Het enige waar ik mee zit, is dat $_POST['route'] leeg is in de output pagina. De header () functie zorgt er toch voor dat $_POST['route'] beschikbaar is in het volgende script??