Bestelformulier output aanpassen
Heb een bestelformulier voor een broodjeszaak gemaakt en met een script stuurt hij de input netjes naar mijn mailadres. Aangezien het een groot formulier is zou ik graag alleen de info willen ontvangen die door de bezoeker is ingevuld (vwb de niet verplichte onderdelen) en niet een lange lijst van niet-ingevulde info. Hoe is dat mogelijk?
Alvast bedankt!
Groeten.
Gewijzigd op 16/07/2010 19:19:55 door Mark Reijling
Wat heb je gemaakt ? Laat iets zien hier waarop gereageerd kan worden. Hoe werkt het formulier ?
Je kiest toch zelf wat je wel of niet verstuurd? Welke $_POST variablen?
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$_POST['broodje 1']; // wel versturen
$_POST['broodje 2']; // niet versturen
$_POST['broodje 3']; // wel versturen
?>
$_POST['broodje 1']; // wel versturen
$_POST['broodje 2']; // niet versturen
$_POST['broodje 3']; // wel versturen
?>
Er zijn namelijk verschillende broodjes die aangevinkt kunnen worden boordje 1 en en broodje 3 zijn besteld maar broodje 2 niet. Nu wil hij denk ik dat broodje 2 helemaal uit de e-mail verdwijnt. Een optie hiervoor is de funtie !empty() gebruiken.
Als het veld leeg is in het formulier van het aantal broodje, bouw je hem zo in dat het broodje niet in je e-mail wordt weergeven.
http://broodjebonjour.nl/joomla/bestelformulier/form.php
Heb dan een bestand post.php die de gegevens verwerkt en verstuurd naar mijn emailadres. Dit bestand bevat onderstaande code. Zoals te zien is heb ik nog lang niet alle invulvelden in dit bestand verwerkt.
De bedoeling is dus om alleen ingevulde content door te laten sturen naar mijn mailadres. Anders krijg ik elke keer een hele waslijst met alle mogelijke sandwich combinaties zonder aantal erachter.
Bedankt voor de reacties. Ik zeg wel dat ik een echte 'beginner' ben... Het gaat om dit formulier wat ik al heb klaargezet: Heb dan een bestand post.php die de gegevens verwerkt en verstuurd naar mijn emailadres. Dit bestand bevat onderstaande code. Zoals te zien is heb ik nog lang niet alle invulvelden in dit bestand verwerkt.
De bedoeling is dus om alleen ingevulde content door te laten sturen naar mijn mailadres. Anders krijg ik elke keer een hele waslijst met alle mogelijke sandwich combinaties zonder aantal erachter.
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
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
<?php
$naam = htmlspecialchars($_POST['naam']);
$email = htmlspecialchars($_POST['email']);
$bericht = htmlspecialchars($_POST['bericht']);
$bedrijfsnaam = htmlspecialchars($_POST['bedrijfsnaam']);
$betaalwijze = htmlspecialchars($_POST['betaalwijze']);
$HamSandwichMais = htmlspecialchars($_POST['HamSandwichMais']);
if (!$naam) {
echo "u heeft geen naam ingevuld!";
exit; }
if (!$email) {
echo "u heeft geen e-mailadres ingevuld!";
exit; }
if (!$bericht) {
echo "u heeft geen bericht ingevuld!";
exit; }
if (!$betaalwijze) {
echo "u heeft geen betaalwijze ingevuld!";
exit; }
else {
$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$ip = getenv("REMOTE_ADDR");
$message = "IP $ip
" . $naam . " met het e-mailadres " . $email . " heeft op $datum de volgende bestelling doorgegeven:
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Maïs Sandwich Ham: " . $HamSandwichMais . "
------------------------------------";
$mailadres = "[email protected]";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Bericht van www.broodjebonjour.nl",
$message, "From: " . $email . "");
echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk.";
}
?>
$naam = htmlspecialchars($_POST['naam']);
$email = htmlspecialchars($_POST['email']);
$bericht = htmlspecialchars($_POST['bericht']);
$bedrijfsnaam = htmlspecialchars($_POST['bedrijfsnaam']);
$betaalwijze = htmlspecialchars($_POST['betaalwijze']);
$HamSandwichMais = htmlspecialchars($_POST['HamSandwichMais']);
if (!$naam) {
echo "u heeft geen naam ingevuld!";
exit; }
if (!$email) {
echo "u heeft geen e-mailadres ingevuld!";
exit; }
if (!$bericht) {
echo "u heeft geen bericht ingevuld!";
exit; }
if (!$betaalwijze) {
echo "u heeft geen betaalwijze ingevuld!";
exit; }
else {
$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$ip = getenv("REMOTE_ADDR");
$message = "IP $ip
" . $naam . " met het e-mailadres " . $email . " heeft op $datum de volgende bestelling doorgegeven:
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Maïs Sandwich Ham: " . $HamSandwichMais . "
------------------------------------";
$mailadres = "[email protected]";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Bericht van www.broodjebonjour.nl",
$message, "From: " . $email . "");
echo "Uw bericht is met succes verzonden. We helpen u zo snel mogelijk.";
}
?>
mooi contact formulier
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript">
<!--
function validate_form_3( form )
{
if( form.elements['naam'].value=="" ) { alert("Vul naam in"); form.elements['naam'].focus(); return false; }
if( form.elements['adres'].value=="" ) { alert("vul adres in"); form.elements['adres'].focus(); return false; }
if( form.elements['huisnummer'].value=="" ) { alert("vull huisnummer in"); form.elements['huisnummer'].focus(); return false; }
if( form.elements['woonplaats'].value=="" ) { alert("Vul woonplaats in"); form.elements['woonplaats'].focus(); return false; }
if( form.elements['postcode'].value=="" ) { alert("vul postcode in"); form.elements['postcode'].focus(); return false; }
if( form.elements['telefoon'].value=="" ) { alert("vul telefoonnummer in"); form.elements['telefoon'].focus(); return false; }
if( isNaN( parseInt( form.elements['telefoon'].value ) ) ) { alert("Voer een getal in."); form.elements['telefoon'].focus(); return false; }
if( form.elements['emailadres'].value=="" ) { alert("vul emailadres in"); form.elements['emailadres'].focus(); return false; }
if(!ValidateEmail(form.elements['emailadres'].value)) { alert("emailadres onjuist"); form.elements['emailadres'].focus(); return false; }
if( form.elements['combo_18'].value=="" ) { alert("kies betaalwijze"); form.elements['combo_18'].focus(); return false; }
if( form.elements['leverdatum'].value=="" ) { alert("Vul de gewenste datum/tijd in "); form.elements['leverdatum'].focus(); return false; }
return true;
}
-->
</script>
.
.
.
<form id="form_3" name="verzenden" onsubmit="return validate_form_3(this)" action="verzenden.php" accept-charset="UTF-8" method="post" target="_self" enctype="application/x-www-form-urlencoded" style="margin:0px;">
.
.
<!--
function validate_form_3( form )
{
if( form.elements['naam'].value=="" ) { alert("Vul naam in"); form.elements['naam'].focus(); return false; }
if( form.elements['adres'].value=="" ) { alert("vul adres in"); form.elements['adres'].focus(); return false; }
if( form.elements['huisnummer'].value=="" ) { alert("vull huisnummer in"); form.elements['huisnummer'].focus(); return false; }
if( form.elements['woonplaats'].value=="" ) { alert("Vul woonplaats in"); form.elements['woonplaats'].focus(); return false; }
if( form.elements['postcode'].value=="" ) { alert("vul postcode in"); form.elements['postcode'].focus(); return false; }
if( form.elements['telefoon'].value=="" ) { alert("vul telefoonnummer in"); form.elements['telefoon'].focus(); return false; }
if( isNaN( parseInt( form.elements['telefoon'].value ) ) ) { alert("Voer een getal in."); form.elements['telefoon'].focus(); return false; }
if( form.elements['emailadres'].value=="" ) { alert("vul emailadres in"); form.elements['emailadres'].focus(); return false; }
if(!ValidateEmail(form.elements['emailadres'].value)) { alert("emailadres onjuist"); form.elements['emailadres'].focus(); return false; }
if( form.elements['combo_18'].value=="" ) { alert("kies betaalwijze"); form.elements['combo_18'].focus(); return false; }
if( form.elements['leverdatum'].value=="" ) { alert("Vul de gewenste datum/tijd in "); form.elements['leverdatum'].focus(); return false; }
return true;
}
-->
</script>
.
.
.
<form id="form_3" name="verzenden" onsubmit="return validate_form_3(this)" action="verzenden.php" accept-charset="UTF-8" method="post" target="_self" enctype="application/x-www-form-urlencoded" style="margin:0px;">
.
.
Gewijzigd op 17/07/2010 17:41:47 door Aad B
{
Maïs Sandwich Ham: " . $HamSandwichMais . "
}
etc
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
" . $naam . " met het e-mailadres " . $email . " heeft op $datum de volgende bestelling doorgegeven:
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Mas Sandwich Ham: " . $HamSandwichMais . "
------------------------------------";
?>
" . $naam . " met het e-mailadres " . $email . " heeft op $datum de volgende bestelling doorgegeven:
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Mas Sandwich Ham: " . $HamSandwichMais . "
------------------------------------";
?>
ontvang ik mijn mails op deze manier:
naam met het e-mailadres email heeft op 18/07/10 12:05 de volgende bestelling doorgegeven:
____________________________________
Naam: naam
Email: email
Broodje:
Bericht: qwer
Bedrijfsnaam:
Betaalwijze: rekening
Ham Sandwich Mais: 2
Nu heb ik dus 2 sandwiches met mais besteld :)
Als ik niets invoer bij ham sandwich mais dan ontvang ik mijn mail zo:
____________________________________
Naam: naam
Email: email
Broodje:
Bericht: qwer
Bedrijfsnaam:
Betaalwijze: rekening
Ham Sandwich Mais:
Nu wil ik dus dat indien er niets is ingevuld bij het broodje dan ook de gehele titel "Ham Sandwich Mais" niet in mijn mail verschijnt. Want uiteindelijk wil ik natuurlijk alleen bestelde broodjes ontvangen in mijn mailbox.
Is hier een oplossing voor?
Gewijzigd op 18/07/2010 13:12:36 door Mark Reijling
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if !empty($HamSandwichMais)
{
$bestelling = $bestelling.'<br> Mas Sandwich Ham: " . $HamSandwichMais . ";
}
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Bestelling: " . $bestelling . "
------------------------------------";
?>
if !empty($HamSandwichMais)
{
$bestelling = $bestelling.'<br> Mas Sandwich Ham: " . $HamSandwichMais . ";
}
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Bestelling: " . $bestelling . "
------------------------------------";
?>