Bestelformulier maken
Pagina: « vorige 1 2 3 4 volgende »
Kijk ik krijg mijn opdracht om te maken in PHP:
Webpagina maken met daarop een formulier. Op dit formulier wil je een spel bestellen. Daarbij kun je de volgende velden invoeren:
- Jouw naam
- Jouw leeftijd
- Naam van het spel
- Aantal dat je wilt bestellen
- Prijs per stuk
- Leeftijdscategorie (listbox)
- Alle leeftijden
- +12 Jaar
- +14 Jaar
- +18 Jaar
Als het formulier wordt verstuurd (naar een nieuwe pagina), van verschijnen de gegeven die je hebt ingevoerd. Echter zijn er wel wat checks die je uit moet voeren. Als jouw leeftijd lager ligt dan de gekozen leeftijdscategorie, krijg je netjes een melding (na het klikken op de bestel knop) dat je dit spel niet mag bestellen. Mag het spel wel besteld worden, dan krijk je een net overzicht met het bestelde spel en totaalprijs.
Dat is dus mijn opdracht.
Maar misschien ben ik wel veel te moeilijk aan het doen...
Bas Van Balkom op 27/06/2015 01:43:15:
Maar misschien ben ik wel veel te moeilijk aan het doen...
Zie mijn eerdere reacties. (nu ga ik lekker slapen)
Gewijzigd op 27/06/2015 01:47:00 door Frank Nietbelangrijk
Maar die waardes van de divjes kunnen die makkelijk opgenomen worden in een php script?
Maar goed, ik ga er morgen maar weer eens even opnieuw naar kijken, want het wordt voor deze "beginnende php'er" een beetje te veel haha...
Toch super bedankt voor jullie hulp en uitleg!
Als je ideeën hebt sta ik er nog altijd voor open.
Dat ligt eraan, wat wil je precies daarmee?
Code (php)
1
2
3
4
2
3
4
<option value="">(geen spel gekozen)</option>
<option value="Call of Duty">Call of Duty 24,95</option>
<option value="De Sims Erop Uit">De Sims erop uit 14,95</option>
<option value="Winnie de Poeh">Winnie de Poeh 11,95</option>
<option value="Call of Duty">Call of Duty 24,95</option>
<option value="De Sims Erop Uit">De Sims erop uit 14,95</option>
<option value="Winnie de Poeh">Winnie de Poeh 11,95</option>
Gewijzigd op 27/06/2015 09:57:32 door Frank Nietbelangrijk
En ja, als er iets dynamisch moet gebeuren op een pagina moet hier iets voor gedaan worden (page refresh, informatie ophalen via AJAX <-- dat zou helemaal fancy zijn maar zou een beetje buiten de opdracht vallen imo, of iets eenvoudigers met JavaScript). Als een pagina is geladen is PHP, zoals Frank aangaf, al "klaar".
Ze vragen natuurlijk niet om 3 producten.
Kan ik niet gewoon één checkbox maken van het spel.
Een vaste prijs eronder, en dan na de knop het aantal combineren met de prijs en de if else elseif op de leeftijd los laten? Ze vragen om velden in de opdracht, niet om textarea's.
Daarom moet je iets bedenken (zal me een worst zijn of het nu een list, div's of dropdown is) waarin je alle informatie van een spel in één formulier OF één formulier-veld hebt staan.
Je kunt dus kiezen uit jouw dropdown maar dan met de prijs er direct bij zoals eerder door mij aangegeven.
Of je kiest voor iets als dit waarvan je er dan meerdere (3) onder elkaar laat zien:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<div class="article">
<h2>The Sims - Returning home € 29,95</h2>
<p>Dit is een beschrijving over het spelletje sims. bla bla bla</p>
<form action="" method="post">
<input type="number" value="1" name="qty">
<input type="hidden" value="1" name="id">
<button type="submit">Bestellen</button>
</form>
</div>
<h2>The Sims - Returning home € 29,95</h2>
<p>Dit is een beschrijving over het spelletje sims. bla bla bla</p>
<form action="" method="post">
<input type="number" value="1" name="qty">
<input type="hidden" value="1" name="id">
<button type="submit">Bestellen</button>
</form>
</div>
http://codepen.io/anon/pen/LVebJX
Die id wijst naar het element in je array. Alleen op deze wijze kun je de bijbehorende informatie zoals de prijs op een veilige manier terugvinden.
Gewijzigd op 27/06/2015 12:31:47 door Frank Nietbelangrijk
Ik ga voor 1 product waar dan straks de leeftijd van 18 jaar aan moet hangen.
Zoals jij al hebt gezegd ga ik voor een div.
De code die ik dus nu heb is:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<!DOCTYPE HTML>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Bestelformulier Spel</title>
</head>
<body>
<form action="page1.php" method="post">
<div class="large-block">
<div class="large-block-wit">
<h1>Bestellen Call Of Duty</h1>
<input type="text" name="naam" placeholder="Voor- en achtenaam" required>Uw Naam<br />
<input type="text" name="leeftijd" placeholder="Vul hier uw leeftijd in" required>Uw Leeftijd<br />
<br>
<div id="article_cod">
<span class="spel"><strong>Call of Duty</strong></span><br />
<span class="prijs"><strong>Prijs:</strong> 19.75 incl. BTW</span>
<br>
<div class="aantal_div"><strong>Aantal:</strong><br>
<input type="text" id="aantal_groot" class="aantal_groot" value="1"></div>
<br>
<select id="minimumleeftijd" name="minimumleeftijd">
<option value="0">Alle leeftijden</option>
<option value="12">+12 Jaar</option>
<option value="14">+14 Jaar</option>
<option value="18">+18 Jaar</option>
</select>Leeftijds Categorie<br />
</div>
<br>
<br>
<input type="reset" name="reset" value="Reset">
<input type="submit" name="submit" value="Bestel">
</div>
</body>
</html>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Bestelformulier Spel</title>
</head>
<body>
<form action="page1.php" method="post">
<div class="large-block">
<div class="large-block-wit">
<h1>Bestellen Call Of Duty</h1>
<input type="text" name="naam" placeholder="Voor- en achtenaam" required>Uw Naam<br />
<input type="text" name="leeftijd" placeholder="Vul hier uw leeftijd in" required>Uw Leeftijd<br />
<br>
<div id="article_cod">
<span class="spel"><strong>Call of Duty</strong></span><br />
<span class="prijs"><strong>Prijs:</strong> 19.75 incl. BTW</span>
<br>
<div class="aantal_div"><strong>Aantal:</strong><br>
<input type="text" id="aantal_groot" class="aantal_groot" value="1"></div>
<br>
<select id="minimumleeftijd" name="minimumleeftijd">
<option value="0">Alle leeftijden</option>
<option value="12">+12 Jaar</option>
<option value="14">+14 Jaar</option>
<option value="18">+18 Jaar</option>
</select>Leeftijds Categorie<br />
</div>
<br>
<br>
<input type="reset" name="reset" value="Reset">
<input type="submit" name="submit" value="Bestel">
</div>
</body>
</html>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
$products = array(
array(
'id' => 1,
'omschrijving' => 'Call of Duty' ,
'prijs' => 24.95
),
array(
'id' => 2,
'omschrijving' => 'De Sims Erop Uit' ,
'prijs' => 14.95
),
array(
'id' => 3,
'omschrijving' => 'Winnie de Poeh',
'prijs' => 11.95
)
);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($products as $product)
{
if($product['id'] == $_POST['id'])
{
echo 'U heeft gekozen voor: ' . $product['omschrijving'] . ' voor een prijs van € ' . $product['prijs'];
break;
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<?php foreach($products as $product) { ?>
<div class="article">
<h2><?php echo $product['omschrijving']; ?> € <?php echo $product['prijs']; ?></h2>
<form action="" method="post">
<input type="number" value="1" name="qty">
<input type="hidden" value="<?php echo $product['id']; ?>" name="id">
<button type="submit">Bestellen</button>
</form>
</div>
<?php } ?>
</body>
</html>
$products = array(
array(
'id' => 1,
'omschrijving' => 'Call of Duty' ,
'prijs' => 24.95
),
array(
'id' => 2,
'omschrijving' => 'De Sims Erop Uit' ,
'prijs' => 14.95
),
array(
'id' => 3,
'omschrijving' => 'Winnie de Poeh',
'prijs' => 11.95
)
);
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($products as $product)
{
if($product['id'] == $_POST['id'])
{
echo 'U heeft gekozen voor: ' . $product['omschrijving'] . ' voor een prijs van € ' . $product['prijs'];
break;
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<?php foreach($products as $product) { ?>
<div class="article">
<h2><?php echo $product['omschrijving']; ?> € <?php echo $product['prijs']; ?></h2>
<form action="" method="post">
<input type="number" value="1" name="qty">
<input type="hidden" value="<?php echo $product['id']; ?>" name="id">
<button type="submit">Bestellen</button>
</form>
</div>
<?php } ?>
</body>
</html>
Daarom ga ik toch voor de makkelijke weg.
1 product
Vaste prijs
Aantallen in variabele
En dan leeftijd in variabele
Doorverwijzen naar page1.php
En daar totaalprijs, error als je niet oud genoeg bent.
Dan heb ik daar maar 2 moeilijke dingen om door te voeren.
Toevoeging op 27/06/2015 16:03:46:
Nou so far so good.
Het werkt bijna helemaal.
Misschien kunnen jullie mij helpen?
Ik heb nu het volgende:
Formulier verwijst naar page1.php en werkt goed.
Naam neemt hij netjes mee over.
Ik krijg daar netjes te zien welk spel er gekozen is en wat deze kost.
Aantallen krijg ik mooi te zien.
Maar dan bij totaalprijs geeft hij aan $totaalprijs ipv aantal x prijs per stuk.
Bij leeftijdscategorie geeft hij aan $minimumleeftijd ipv +18 Jaar.
En als ik in mijn eerste formulier ingeef dat ik 18 ben zegt hij mag dit niet bestellen.
Weet iemand wat ik hieraan kan veranderen?
Dit is de huidige code HTML:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
$products = array(
array(
'id' => 1,
'omschrijving' => 'Call of Duty' ,
'prijs' => 24.95 ,
'minimumleeftijd' => 18
)
);
?>
<!DOCTYPE HTML>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Bestelformulier Spel</title>
</head>
<body>
<form action="page1.php" method="post">
<div class="large-block">
<div class="large-block-wit">
<h1>Bestellen Call Of Duty</h1>
<input type="text" name="naam" placeholder="Voor- en achtenaam" required>Uw Naam<br />
<input type="text" name="leeftijd" placeholder="Vul hier uw leeftijd in" required>Uw Leeftijd<br />
<br>
<?php foreach($products as $product) { ?>
<div class="article">
<span><strong>Uw gekozen spel:</strong>
<?php echo $product['omschrijving']; ?> <br />
<span><strong>Prijs per stuk:</strong></span>
€ <?php echo $product['prijs']; ?></span><br />
<form action="" method="post">
<input type="number" value="1" name="qty">
<input type="hidden" value="<?php echo $product['id']; ?>" name="id">
</form>
</div>
<?php } ?>
<br>
<select id="minimumleeftijd" name="minimumleeftijd">
<option value="0">Alle leeftijden</option>
<option value="12">+12 Jaar</option>
<option value="14">+14 Jaar</option>
<option value="18">+18 Jaar</option>
</select>Leeftijds Categorie<br />
<br>
<br>
<input type="reset" name="reset" value="Reset">
<input type="submit" name="submit" value="Bestel">
</div>
</body>
</html>
$products = array(
array(
'id' => 1,
'omschrijving' => 'Call of Duty' ,
'prijs' => 24.95 ,
'minimumleeftijd' => 18
)
);
?>
<!DOCTYPE HTML>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Bestelformulier Spel</title>
</head>
<body>
<form action="page1.php" method="post">
<div class="large-block">
<div class="large-block-wit">
<h1>Bestellen Call Of Duty</h1>
<input type="text" name="naam" placeholder="Voor- en achtenaam" required>Uw Naam<br />
<input type="text" name="leeftijd" placeholder="Vul hier uw leeftijd in" required>Uw Leeftijd<br />
<br>
<?php foreach($products as $product) { ?>
<div class="article">
<span><strong>Uw gekozen spel:</strong>
<?php echo $product['omschrijving']; ?> <br />
<span><strong>Prijs per stuk:</strong></span>
€ <?php echo $product['prijs']; ?></span><br />
<form action="" method="post">
<input type="number" value="1" name="qty">
<input type="hidden" value="<?php echo $product['id']; ?>" name="id">
</form>
</div>
<?php } ?>
<br>
<select id="minimumleeftijd" name="minimumleeftijd">
<option value="0">Alle leeftijden</option>
<option value="12">+12 Jaar</option>
<option value="14">+14 Jaar</option>
<option value="18">+18 Jaar</option>
</select>Leeftijds Categorie<br />
<br>
<br>
<input type="reset" name="reset" value="Reset">
<input type="submit" name="submit" value="Bestel">
</div>
</body>
</html>
En dit is mijn page1.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
$naam = $_POST["naam"];
$leeftijd = $_POST["leeftijd"];
$products = array(
array(
'id' => 1,
'omschrijving' => 'Call of Duty' ,
'prijs' => 24.95 ,
'minimumleeftijd' => 18
)
);
$qty = $_POST["qty"];
$totaalprijs = $qty * $product['prijs'];
$minimumleeftijd = $_POST['minimumleeftijd' . 18];
?>
<!DOCTYPE HTML>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Bestelformulier game</title>
</head>
<body>
<h1>Orderbevestiging Call Of Duty</h1>
<h3>Uw gegevens:</h3>
<span><strong>Uw naam:</strong></span>
<?php
print("$naam")
?>
<br>
<span><strong>Uw leeftijd:</strong></span>
<?php
print("$leeftijd")
?>
<br>
<br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($products as $product)
{
if($product['id'] == $_POST['id'])
{
echo('U heeft gekozen voor: ' . $product['omschrijving'] . ' voor een prijs van € ' . $product['prijs'] . ' incl. BTW per stuk');
break;
}
}
}
?>
<br>
<span><strong>Uw gekozen aantal:</strong></span>
<?php
print("$qty")
?>
<br>
<span><strong>Uw totaalprijs is:</strong></span>
<?php
print('$totaalprijs')
?>
<br>
<span><strong>Dit product valt binnen de leeftijds categorie:</strong></span>
<br>
<?php
print('$minimumleeftijd')
?>
<br>
<br>
<br>
<?php
/*
als leeftijd lager is dan 18 -> spel niet bestellen
als leeftijd hoger is dan 18 -> spel wel bestellen
als leeftijd gelijk is aan 18 -> spel wel bestellen
*/
if ($leeftijd <= 18)
print "U mag dit spel niet bestellen! <br />";
else if ($leeftijd === 18)
print "Bedankt voor uw bestelling! <br />";
else if ($leeftijd >= 18)
print "Bedankt voor uw bestelling! <br />";
?>
</body>
</html>
$naam = $_POST["naam"];
$leeftijd = $_POST["leeftijd"];
$products = array(
array(
'id' => 1,
'omschrijving' => 'Call of Duty' ,
'prijs' => 24.95 ,
'minimumleeftijd' => 18
)
);
$qty = $_POST["qty"];
$totaalprijs = $qty * $product['prijs'];
$minimumleeftijd = $_POST['minimumleeftijd' . 18];
?>
<!DOCTYPE HTML>
<html lang="nl">
<head>
<meta charset="utf-8" />
<title>Bestelformulier game</title>
</head>
<body>
<h1>Orderbevestiging Call Of Duty</h1>
<h3>Uw gegevens:</h3>
<span><strong>Uw naam:</strong></span>
<?php
print("$naam")
?>
<br>
<span><strong>Uw leeftijd:</strong></span>
<?php
print("$leeftijd")
?>
<br>
<br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($products as $product)
{
if($product['id'] == $_POST['id'])
{
echo('U heeft gekozen voor: ' . $product['omschrijving'] . ' voor een prijs van € ' . $product['prijs'] . ' incl. BTW per stuk');
break;
}
}
}
?>
<br>
<span><strong>Uw gekozen aantal:</strong></span>
<?php
print("$qty")
?>
<br>
<span><strong>Uw totaalprijs is:</strong></span>
<?php
print('$totaalprijs')
?>
<br>
<span><strong>Dit product valt binnen de leeftijds categorie:</strong></span>
<br>
<?php
print('$minimumleeftijd')
?>
<br>
<br>
<br>
<?php
/*
als leeftijd lager is dan 18 -> spel niet bestellen
als leeftijd hoger is dan 18 -> spel wel bestellen
als leeftijd gelijk is aan 18 -> spel wel bestellen
*/
if ($leeftijd <= 18)
print "U mag dit spel niet bestellen! <br />";
else if ($leeftijd === 18)
print "Bedankt voor uw bestelling! <br />";
else if ($leeftijd >= 18)
print "Bedankt voor uw bestelling! <br />";
?>
</body>
</html>
Een beetje tegenstrijdig ;-)
zou ik die om moeten draaien dan?
Jonger dan 18, en 18 jaar of ouder. Waarom zou je specifiek willen controleren of iemand precies 18 jaar is?
Heb er 1 tussenuit gehaald en nu werkt het ook :)
Thanks
Heb jij misschien enig idee waarom de totaalprijs en leeftijdscategorie niet werkt?
Gezien van de code.
- Je sluit je eerste <div> op regel 25 niet af. Spring dus ook beter in
zet dit eens boven in page1.php:
Zie jij ergens dat de prijs meegezonden wordt? Nee! Maar dat hoeft ook niet. Je hebt namelijk het id. Met dat id moet je de juiste gegevens zien terug te vinden in je array. Je bent er dan zeker van dat gebruikers niet stiekem de prijs naar beneden bijstellen. Je krijgt daar mogelijk extra punten voor van je leraar.
Gewijzigd op 27/06/2015 16:33:38 door Frank Nietbelangrijk
Regel 16 en 18 zijn geen goede regels zegt de browser.
Dat is ook hetgeen wat niet werkt dan natuurlijk.
Gewijzigd op 27/06/2015 16:40:23 door arend b
(Vervolg vorige post) En zo kan minimum leeftijd er ook uit. Ook deze kun je beter opnieuw uit je array halen zodat dit niet door een nerd van 14 jaar aangepast wordt ;-)