Springen naar inhoud

Formulier in php


  • Log in om te kunnen reageren

#1

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 28 augustus 2008 - 12: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)

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


Vervolgens heb ik het volgende script gemaakt:

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


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.
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Spooky K

    Spooky K


  • >25 berichten
  • 54 berichten
  • Ervaren gebruiker

Geplaatst op 28 augustus 2008 - 19:20

Hier is duidelijk uitgelegd hoe je tabellen moet maken in html. Onderaan de pagina staan enkele voorbeelden die je eventueel kunt aanpassen.
"I believe in God, only I spell it Nature." - Frank Lloyd Wright
"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke
"There are only two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle." - A. Einstein

#3

Ger

    Ger


  • >5k berichten
  • 16444 berichten
  • Technicus

Geplaatst op 28 augustus 2008 - 19:36

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:
<?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.
"Knowledge speaks, but wisdom listens."
- Jimi Hendrix -

#4

Cycloon

    Cycloon


  • >1k berichten
  • 4810 berichten
  • VIP

Geplaatst op 28 augustus 2008 - 21:00

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.

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.

#5

Ruben01

    Ruben01


  • >1k berichten
  • 2902 berichten
  • Ervaren gebruiker

Geplaatst op 29 augustus 2008 - 16:10

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.
BOINC mee met het WSF-team: <a href="http://www.wetenscha...howtopic=60653" target="_blank">http://www.wetenscha...topic=60653</a>





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures