PHP bestelformulier output zonder lege velden
Voor een slagerij heb ik een bestelformulier in elkaar geknutseld.
Het formulier bestaat uit een lange lijst (ongeveer 100) producten met standaard input-velden.
Het formulier wordt als HTML-tabel naar het mailadres van de slagerij verstuurd.
De producten die niet worden besteld, komen wel in de HTML tabel te staan.
Dit is niet alleen onnodig maar het maakt de tabel ook erg onoverzichtelijk en bovendien kost het uitprinten van de bestelling onnodig veel papier (3 vellen)
Wie weet er een oplossing voor dit probleem zonder dat ik het formulier helemaal opnieuw hoef te maken.
Toevoeging op 30/09/2013 12:28:18:
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?php
$mail_to = 'bestelling@######.nl';
$mail_from = 'bestelling@######.nl';
$mail_subject = 'Nieuwe Bestelling';
$headers = "From: #####@######.com\r\n";
$headers .= "Content-type: text/html charset=iso-8859-1 \r\n";
$message ="<html>
<head>
<title>Message</title>
</head>
<body>
<table border= 1px; font-size= 10; >
<tr><td><strong>Contactgegevens</strong></td><td> </td></tr>
<tr><td style= width:400px>Naam</td>><td style= width:400px>$field_1</td></tr>
<tr><td>Woonplaats</td><td>$field_2</td></tr>
<tr><td>Telefoon</td><td>$field_3</td></tr>
<tr><td>E-mail</td><td>$field_4</td></tr>
<tr><td>Datum bestelling</td><td>$field_5</td></tr>
<tr><td>Tijd bestelling</td><td>$field_121</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Gehakt - Snel klaar</strong></td><td> </td></tr>
<tr><td> </td><td> </td><tr>
<tr><td>Gehakt halfhalf</td><td>$field_6</td></tr>
<tr><td>Gehakt halfhalf (gekruid)</td><td>$field_119</td></tr>
<tr><td>rundergehakt</td><td>$field_7</td></tr>
<tr><td>rundergehakt (gekruid)</td><td>$field_120</td></tr>
<tr><td>Mager rundergehakt</td><td>$field_8</td></tr>
<tr><td>Tartaar</td><td>$field_9</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Rundvlees - Snel klaar</strong></td><td> </td></tr>
<tr><td>hamburger ong</td><td>$field_10</td></tr>
<tr><td>hamburger gep</td><td>$field_11</td></tr>
<tr><td>Rudersaucijzen</td><td>$field_12</td></tr>
<tr><td>Biefstuk</td><td>$field_13</td></tr>
<tr><td>Kogelbiefstu</td><td>$field_14</td></tr>
<tr><td>Zijlendebiefstuk</td><td>$field_15</td></tr>
<tr><td>Haasbiefstuk</td><td>$field_16</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Rundvlees - divers</strong></td><td> </td></tr>
<tr><td>Bieflappen</td><td>$field_17</td></tr>
<tr><td>Borstlappen</td><td>$field_18</td></tr>
<tr><td>Riblappen</td><td>$field_19</td></tr>
<tr><td>Lendelappen</td><td>$field_20</td></tr>
<tr><td>Braadlappen</td><td>$field_21</td></tr>
<tr><td>Sucadelappen</td><td>$field_22</td></tr>
<tr><td>Dikke rib</td><td>$field_23</td></tr>
<tr><td>Dikke lende</td><td>$field_24</td></tr>
<tr><td>Rosbeef</td><td>$field_25</td></tr>
<tr><td>Klapstuk</td><td>$field_26</td></tr>
<tr><td>Staartstuk</td><td>$field_27</td></tr>
<tr><td>Hacheevlees</td><td>$field_28</td></tr>
<tr><td>Runderrollade</td><td>$field_29</td></tr>
<tr><td>Lenderollade</td><td>$field_30</td></tr>
<tr><td>Picanha</td><td>$field_31</td></tr>
<tr><td>Costella</td><td>$field_32</td></tr>
<tr><td>Ribeye</td><td>$field_33</td></tr>
<tr><td>Hart</td><td>$field_34</td></tr>
<tr><td>Kopvlees</td><td>$field_35</td></tr>
<tr><td>Pens</td><td>$field_36</td></tr>
<tr><td>Soepvlees</td><td>$field_117</td></tr>
<tr><td>Runderpoulet</td><td>$field_118</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Varkensvlees - Snel klaar</strong></td><td> </td></tr>
<tr><td>Shoarma</td><td>$field_37</td></tr>
<tr><td>Slavinken</td><td>$field_38</td></tr>
<tr><td>Schnitzel</td><td>$field_39</td></tr>
<tr><td>Schnitzel gep</td><td>$field_40</td></tr>
<tr><td>Varkensfiletlapjes</td><td>$field_41</td></tr>
<tr><td>Verse worst</td><td>$field_42</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Varkensvlees - divers</strong></td><td> </td></tr>
<tr><td>Halskarbonade</td><td>$field_43</td></tr>
<tr><td>Ribkarbonade</td><td>$field_44</td></tr>
<tr><td>Haaskarbonade</td><td>$field_45</td></tr>
<tr><td>Hamlappen</td><td>$field_46</td></tr>
<tr><td>Speklappen</td><td>$field_47</td></tr>
<tr><td>Speklappen zwoerd</td><td>$field_48</td></tr>
<tr><td>Varkenshaas</td><td>$field_49</td></tr>
<tr><td>Varkenspoulet</td><td>$field_50</td></tr>
<tr><td>Schouderfiletlapjes (hals zb)</td><td>$field_51</td></tr>
<tr><td>Karbonade zb</td><td>$field_52</td></tr>
<tr><td>Varkensfricandeau</td><td>$field_53</td></tr>
<tr><td>Rauwe lever</td><td>$field_54</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Winterkost</strong></td><td> </td></tr>
<tr><td>Krabbetjes</td><td>$field_55</td></tr>
<tr><td>Hamschijf</td><td>$field_56</td></tr>
<tr><td>Bovenpoot</td><td>$field_57</td></tr>
<tr><td>Rookworst</td><td>$field_58</td></tr>
<tr><td>Vers doorregen spek</td><td>$field_59</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Spek</strong></td><td> </td></tr>
<tr><td>Vet rookspek</td><td>$field_60</td></tr>
<tr><td>Vet rookspek zz</td><td>$field_61</td></tr>
<tr><td>Dobbelsteentjes mager</td><td>$field_62</td></tr>
<tr><td>Dobbelsteentjes vet</td><td>$field_63</td></tr>
<tr><td>Mager ontbijtspek</td><td>$field_64</td></tr>
<tr><td>Vers doorregen(mager) spek</td><td>$field_65</td></tr>
<tr><td>Vers vet spek</td><td>$field_66</td></tr>
<tr><td>Pekelspek</td><td>$field_67</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Rollade</strong></td><td> </td></tr>
<tr><td>Varkensfiletrollade</td><td>$field_68</td></tr>
<tr><td>Schoudrfiletrollade</td><td>$field_69</td></tr>
<tr><td>Varkensrollade</td><td>$field_70</td></tr>
<tr><td>Spekrollade</td><td>$field_71</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Kip producten</strong></td><td> </td></tr>
<tr><td>Kipfilet</td><td>$field_72</td></tr>
<tr><td>Kippoulet</td><td>$field_73</td></tr>
<tr><td>Kippenpoten</td><td>$field_74</td></tr>
<tr><td>Drumsticks</td><td>$field_75</td></tr>
<tr><td>Kipschnitzel</td><td>$field_76</td></tr>
</table>
</body>
</html>";
mail($mail_to, $mail_subject, $message, $headers, 'From: ' . $mail_from);
$sHtml .= '<h1>Het formulier is verzonden</h1><p>Hartelijk dank voor het plaatsen van uw bestelling.</p>';
}
echo $sHtml;
?>
$mail_to = 'bestelling@######.nl';
$mail_from = 'bestelling@######.nl';
$mail_subject = 'Nieuwe Bestelling';
$headers = "From: #####@######.com\r\n";
$headers .= "Content-type: text/html charset=iso-8859-1 \r\n";
$message ="<html>
<head>
<title>Message</title>
</head>
<body>
<table border= 1px; font-size= 10; >
<tr><td><strong>Contactgegevens</strong></td><td> </td></tr>
<tr><td style= width:400px>Naam</td>><td style= width:400px>$field_1</td></tr>
<tr><td>Woonplaats</td><td>$field_2</td></tr>
<tr><td>Telefoon</td><td>$field_3</td></tr>
<tr><td>E-mail</td><td>$field_4</td></tr>
<tr><td>Datum bestelling</td><td>$field_5</td></tr>
<tr><td>Tijd bestelling</td><td>$field_121</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Gehakt - Snel klaar</strong></td><td> </td></tr>
<tr><td> </td><td> </td><tr>
<tr><td>Gehakt halfhalf</td><td>$field_6</td></tr>
<tr><td>Gehakt halfhalf (gekruid)</td><td>$field_119</td></tr>
<tr><td>rundergehakt</td><td>$field_7</td></tr>
<tr><td>rundergehakt (gekruid)</td><td>$field_120</td></tr>
<tr><td>Mager rundergehakt</td><td>$field_8</td></tr>
<tr><td>Tartaar</td><td>$field_9</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Rundvlees - Snel klaar</strong></td><td> </td></tr>
<tr><td>hamburger ong</td><td>$field_10</td></tr>
<tr><td>hamburger gep</td><td>$field_11</td></tr>
<tr><td>Rudersaucijzen</td><td>$field_12</td></tr>
<tr><td>Biefstuk</td><td>$field_13</td></tr>
<tr><td>Kogelbiefstu</td><td>$field_14</td></tr>
<tr><td>Zijlendebiefstuk</td><td>$field_15</td></tr>
<tr><td>Haasbiefstuk</td><td>$field_16</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Rundvlees - divers</strong></td><td> </td></tr>
<tr><td>Bieflappen</td><td>$field_17</td></tr>
<tr><td>Borstlappen</td><td>$field_18</td></tr>
<tr><td>Riblappen</td><td>$field_19</td></tr>
<tr><td>Lendelappen</td><td>$field_20</td></tr>
<tr><td>Braadlappen</td><td>$field_21</td></tr>
<tr><td>Sucadelappen</td><td>$field_22</td></tr>
<tr><td>Dikke rib</td><td>$field_23</td></tr>
<tr><td>Dikke lende</td><td>$field_24</td></tr>
<tr><td>Rosbeef</td><td>$field_25</td></tr>
<tr><td>Klapstuk</td><td>$field_26</td></tr>
<tr><td>Staartstuk</td><td>$field_27</td></tr>
<tr><td>Hacheevlees</td><td>$field_28</td></tr>
<tr><td>Runderrollade</td><td>$field_29</td></tr>
<tr><td>Lenderollade</td><td>$field_30</td></tr>
<tr><td>Picanha</td><td>$field_31</td></tr>
<tr><td>Costella</td><td>$field_32</td></tr>
<tr><td>Ribeye</td><td>$field_33</td></tr>
<tr><td>Hart</td><td>$field_34</td></tr>
<tr><td>Kopvlees</td><td>$field_35</td></tr>
<tr><td>Pens</td><td>$field_36</td></tr>
<tr><td>Soepvlees</td><td>$field_117</td></tr>
<tr><td>Runderpoulet</td><td>$field_118</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Varkensvlees - Snel klaar</strong></td><td> </td></tr>
<tr><td>Shoarma</td><td>$field_37</td></tr>
<tr><td>Slavinken</td><td>$field_38</td></tr>
<tr><td>Schnitzel</td><td>$field_39</td></tr>
<tr><td>Schnitzel gep</td><td>$field_40</td></tr>
<tr><td>Varkensfiletlapjes</td><td>$field_41</td></tr>
<tr><td>Verse worst</td><td>$field_42</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Varkensvlees - divers</strong></td><td> </td></tr>
<tr><td>Halskarbonade</td><td>$field_43</td></tr>
<tr><td>Ribkarbonade</td><td>$field_44</td></tr>
<tr><td>Haaskarbonade</td><td>$field_45</td></tr>
<tr><td>Hamlappen</td><td>$field_46</td></tr>
<tr><td>Speklappen</td><td>$field_47</td></tr>
<tr><td>Speklappen zwoerd</td><td>$field_48</td></tr>
<tr><td>Varkenshaas</td><td>$field_49</td></tr>
<tr><td>Varkenspoulet</td><td>$field_50</td></tr>
<tr><td>Schouderfiletlapjes (hals zb)</td><td>$field_51</td></tr>
<tr><td>Karbonade zb</td><td>$field_52</td></tr>
<tr><td>Varkensfricandeau</td><td>$field_53</td></tr>
<tr><td>Rauwe lever</td><td>$field_54</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Winterkost</strong></td><td> </td></tr>
<tr><td>Krabbetjes</td><td>$field_55</td></tr>
<tr><td>Hamschijf</td><td>$field_56</td></tr>
<tr><td>Bovenpoot</td><td>$field_57</td></tr>
<tr><td>Rookworst</td><td>$field_58</td></tr>
<tr><td>Vers doorregen spek</td><td>$field_59</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Spek</strong></td><td> </td></tr>
<tr><td>Vet rookspek</td><td>$field_60</td></tr>
<tr><td>Vet rookspek zz</td><td>$field_61</td></tr>
<tr><td>Dobbelsteentjes mager</td><td>$field_62</td></tr>
<tr><td>Dobbelsteentjes vet</td><td>$field_63</td></tr>
<tr><td>Mager ontbijtspek</td><td>$field_64</td></tr>
<tr><td>Vers doorregen(mager) spek</td><td>$field_65</td></tr>
<tr><td>Vers vet spek</td><td>$field_66</td></tr>
<tr><td>Pekelspek</td><td>$field_67</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Rollade</strong></td><td> </td></tr>
<tr><td>Varkensfiletrollade</td><td>$field_68</td></tr>
<tr><td>Schoudrfiletrollade</td><td>$field_69</td></tr>
<tr><td>Varkensrollade</td><td>$field_70</td></tr>
<tr><td>Spekrollade</td><td>$field_71</td></tr>
<tr><td> </td><td> </td><tr>
<tr><td><strong>Kip producten</strong></td><td> </td></tr>
<tr><td>Kipfilet</td><td>$field_72</td></tr>
<tr><td>Kippoulet</td><td>$field_73</td></tr>
<tr><td>Kippenpoten</td><td>$field_74</td></tr>
<tr><td>Drumsticks</td><td>$field_75</td></tr>
<tr><td>Kipschnitzel</td><td>$field_76</td></tr>
</table>
</body>
</html>";
mail($mail_to, $mail_subject, $message, $headers, 'From: ' . $mail_from);
$sHtml .= '<h1>Het formulier is verzonden</h1><p>Hartelijk dank voor het plaatsen van uw bestelling.</p>';
}
echo $sHtml;
?>
Edit:
Code tussen code-tags gezet. gelieve dit in het vervolg zelf te doen.
Gewijzigd op 30/09/2013 21:30:12 door - Ariën -
Zo bedankt, kost me zowat een scrollwiel :p. Wat je nu plaatst is het formulier zelf. Vervang dit eens voor een stukje van je code dat na het versturen van het formulier oa? De email verstuurd. Het kan nooit al te ingewikkeld zijn, gewoon elk veld testen of er iets ingevuld is...
Bedankt voor je reactie.
Ik had idd. het verkeerde stukje code geciteerd. Ik heb het nu aangepast
éénmaal die lijst in de database gezet kunnen we de artikelen er regel voor regel uithalen en er een formulierveld van maken. aan dat formulierveld geven we dan weer een id mee zodat we later nog steeds weten om welk artikel het gaat.
Maar goed iets zegt me dat je dat allemaal niet wil en dat je een snelle oplossing wilt.
Ik stuur je tevens even een privé berichtje.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$message ='<html>
<head> ....
'; // zo door tot <tr><td><strong>Gehakt - Snel klaar</strong></td><td> </td></tr>
// daarna komen de artikelen:
if($field_6 != '')
$message .= '<tr><td>Gehakt halfhalf</td><td>$field_6</td></tr>';
// enz..
// aan het einde even afsluiten:
$message .= '
</table>
</body>
</html>';
?>
$message ='<html>
<head> ....
'; // zo door tot <tr><td><strong>Gehakt - Snel klaar</strong></td><td> </td></tr>
// daarna komen de artikelen:
if($field_6 != '')
$message .= '<tr><td>Gehakt halfhalf</td><td>$field_6</td></tr>';
// enz..
// aan het einde even afsluiten:
$message .= '
</table>
</body>
</html>';
?>
Gewijzigd op 30/09/2013 21:31:22 door Frank Nietbelangrijk
Jan Roodbaard op 30/09/2013 12:27:13:
Wie weet er een oplossing voor dit probleem zonder dat ik het formulier helemaal opnieuw hoef te maken.
Zoals Frank zegt, zet het assortiment in een database, dan kan je van daaruit het formulier genereren:
Code (php)
Het formulier uitlezen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
//eerst even de vleesjes uit de database halen in in een array pompen
if ($_SERVER['REQUEST_METHOD'] == 'POST']) {
$result = mysqli_query($con, "SELECT meat_id, meat_description FROM meats");
if ($result !== false) {
$meatdesc = array();
while ($meat = mysqli_fetch_assoc($result)) {
$meatsdesc[$meat['meat_id']] = $meat['meat_description'];
}
}
//dan de waardes uit het formulier verwerken
foreach ($_POST['meat'] as $id => $weight) {
if (trim($weight) != '') {
$message .= '<tr><td>' . $meatdesc[$key] . '</td><td>' .
$weight . '</td></tr>';
}
}
}
?>
//eerst even de vleesjes uit de database halen in in een array pompen
if ($_SERVER['REQUEST_METHOD'] == 'POST']) {
$result = mysqli_query($con, "SELECT meat_id, meat_description FROM meats");
if ($result !== false) {
$meatdesc = array();
while ($meat = mysqli_fetch_assoc($result)) {
$meatsdesc[$meat['meat_id']] = $meat['meat_description'];
}
}
//dan de waardes uit het formulier verwerken
foreach ($_POST['meat'] as $id => $weight) {
if (trim($weight) != '') {
$message .= '<tr><td>' . $meatdesc[$key] . '</td><td>' .
$weight . '</td></tr>';
}
}
}
?>
Dit lijkt me een snellere oplossing, dan elke keer voor elk product het veld te controleren.