1 van 1

Formulier in php

Geplaatst: do 28 aug 2008, 13:13
door Ruben01
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.

Re: Formulier in php

Geplaatst: do 28 aug 2008, 20:20
door Spooky K
Hier is duidelijk uitgelegd hoe je tabellen moet maken in html. Onderaan de pagina staan enkele voorbeelden die je eventueel kunt aanpassen.

Re: Formulier in php

Geplaatst: do 28 aug 2008, 20:36
door Ger
Ik gok dat dat niet het probleem is, volgens mij weet Ruben best hoe hij tabellen moet maken. Wat het echte probleem is, weet ik echter even niet... Je kunt de waarden terug laten komen in een tabel net zoals je dat bij je laatste echo doet. Zoiets dus:

Code: Selecteer alles

<?php

echo '<table><tr><td>Voornaam</td><td>' . $voornaam . '</td></tr>';

echo '<tr><td>Waarde2</td><td>' . $veld2 . '</td></tr>';

echo '<tr><td>Waarde3</td><td>' . $veld3 . '</td></tr></table>';

?>
Kan overigens ook in 1 echo, maar dit vind ik zelf overzichtelijker.

Re: Formulier in php

Geplaatst: do 28 aug 2008, 22:00
door Cycloon
Volgens mij geeft Ger idd het juiste antwoord (of je bedoelt iets totaal anders).

Maar een tip: In PHP heeft het geen nut om vooraf types te gaan 'initialiseren' (je doet in jouw code niet aan declaratie, maar aan initialisatie) omdat PHP niet echt veel onderscheidt maakt in verschillende types en er zelf maar wat mee doet.

Code: Selecteer alles

if(empty('voornaam'))

{

// Foutmelding (naam vergeten invullen)

echo 'Je bent vergeten om je naam in te vullen';

}
Deze code lijkt me overigens ook niet echt te kloppen.

Re: Formulier in php

Geplaatst: vr 29 aug 2008, 17:10
door Ruben01
Oké Ger, bedankt voor het stukje voorbeeldcode.

Ik denk wel dat het nu zal lukken.

Die tabel in HTML maken vormt niet echt een probleem en de controle voor het checken of de naam is ingevuld zoals cycloon opmerkt werkte ook niet naar behoren maar dat is al opgelost.