Formulier in php
Geplaatst: do 28 aug 2008, 13:13
Ik heb een formulier gemaakt met HTML en PHP.
Eerst en vooral wil ik een naam inlezen en vervolgens moet de persoon die het formulier gaat invullen een aantal keuzes maken uit verschillende menu's.
Mijn script gaat controleren of die naam ingevuld is en daarna zou ik graag de waarden in een nieuwe html pagina tevoorschijn krijgen in tabelvorm.
Mijn HTML (niet compleet)
[html]<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Invulformulier</title>
</head>
<body>
<form action="verwerk.php" method="post">
<p>
<label for="naam">Voornaam:</label>
<input type="text" name="voornaam" id="voornaam" />
</p>
// Hier komen dan de verschillende keuzemenu's van het invulformulier
<input type="submit" value="Verzenden" />
</p>
</form>
</body>[/html]
Vervolgens heb ik het volgende script gemaakt:
[html]<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>verwerking</title>
</head>
<body><?php
// Controle 'Submit'
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Arrays declareren
$aErrors = array();
$aData = array();
// Velden in het formulier
$aFormulierVelden = array('voornaam', 'veld2', 'veld3', 'veld4', 'veld5', 'veld6');
foreach($aFormulierVelden as $sVeld)
{
// Controleren of er een waarde voor het veld bestaat
// !!! HET EERSTE VELD ZOU EEN NAAM MOETEN BEVATTEN EN DE ANDERE ZOUDEN KEUZEMENU'S ZIJN (enkel dus het eerste controleren ?? !!!
if(isset($_POST[$sVeld]))
{
if(empty('voornaam'))
{
// Foutmelding (naam vergeten invullen)
echo 'Je bent vergeten om je naam in te vullen';
}
// Ingevulde waarden aan data array toevoegen
$aData[$sVeld] = $sValue;
}
else
{
$aErrors[] = 'Het veld '.$sVeld.' is niet gepost!';
}
}
// Controleren of er geen fouten opgetreden zijn
if(empty($aErrors))
{
// Formulier succes!
echo '<p>Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:</p>';
....
....
....
}
else
{
// Fouten opgetreden: weergeven en terug naar formulier
header('Refresh: 3; url=formulier.php');
foreach($aErrors as $sError)
{
echo '<p style="color:red">'.$sError.'</p>';
}
}
}
else
{
// Verwerk.php mag nog niet bezocht worden, terug naar het formulier
header('Location: formulier.php');
}
?>
</body>[/html]
Hoe kan ik nu best een HTML pagina maken met tabel en die velden daarin printen ?
Ik ben wel maar een beginner dus liefst niet te moeilijk.
Eerst en vooral wil ik een naam inlezen en vervolgens moet de persoon die het formulier gaat invullen een aantal keuzes maken uit verschillende menu's.
Mijn script gaat controleren of die naam ingevuld is en daarna zou ik graag de waarden in een nieuwe html pagina tevoorschijn krijgen in tabelvorm.
Mijn HTML (niet compleet)
[html]<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Invulformulier</title>
</head>
<body>
<form action="verwerk.php" method="post">
<p>
<label for="naam">Voornaam:</label>
<input type="text" name="voornaam" id="voornaam" />
</p>
// Hier komen dan de verschillende keuzemenu's van het invulformulier
<input type="submit" value="Verzenden" />
</p>
</form>
</body>[/html]
Vervolgens heb ik het volgende script gemaakt:
[html]<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>verwerking</title>
</head>
<body><?php
// Controle 'Submit'
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Arrays declareren
$aErrors = array();
$aData = array();
// Velden in het formulier
$aFormulierVelden = array('voornaam', 'veld2', 'veld3', 'veld4', 'veld5', 'veld6');
foreach($aFormulierVelden as $sVeld)
{
// Controleren of er een waarde voor het veld bestaat
// !!! HET EERSTE VELD ZOU EEN NAAM MOETEN BEVATTEN EN DE ANDERE ZOUDEN KEUZEMENU'S ZIJN (enkel dus het eerste controleren ?? !!!
if(isset($_POST[$sVeld]))
{
if(empty('voornaam'))
{
// Foutmelding (naam vergeten invullen)
echo 'Je bent vergeten om je naam in te vullen';
}
// Ingevulde waarden aan data array toevoegen
$aData[$sVeld] = $sValue;
}
else
{
$aErrors[] = 'Het veld '.$sVeld.' is niet gepost!';
}
}
// Controleren of er geen fouten opgetreden zijn
if(empty($aErrors))
{
// Formulier succes!
echo '<p>Je hebt het formulier succesvol ingevuld! De volgende gegevens zijn bekend:</p>';
....
....
....
}
else
{
// Fouten opgetreden: weergeven en terug naar formulier
header('Refresh: 3; url=formulier.php');
foreach($aErrors as $sError)
{
echo '<p style="color:red">'.$sError.'</p>';
}
}
}
else
{
// Verwerk.php mag nog niet bezocht worden, terug naar het formulier
header('Location: formulier.php');
}
?>
</body>[/html]
Hoe kan ik nu best een HTML pagina maken met tabel en die velden daarin printen ?
Ik ben wel maar een beginner dus liefst niet te moeilijk.