Bestelformulier output aanpassen
Beste,
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.
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
Gesponsorde koppelingen:
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?
nee, ik denk dat hij bedoelt dat hij meerdere variable of posts als output heeft:
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.
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.
Bedankt voor de reacties. Ik zeg wel dat ik een echte 'beginner' ben... Het gaat om dit formulier wat ik al heb klaargezet: 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.
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 = "xxxx@xxxx.nl";
$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 = "xxxx@xxxx.nl";
$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
De controle op bijvoorbeeld naam brengt me naar een nieuwe pagina. Gebruik wat javascript en je blijft op dezelfde pagina:
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
Dutch Guy,
Waar plaats ik dan exact de !empty() code?
Waar plaats ik dan exact de !empty() code?
Gewijzigd op 18/07/2010 00:48:39 door Mark Reijling
if !empty($HamSandwichMais)
{
Maïs Sandwich Ham: " . $HamSandwichMais . "
}
etc
{
Maïs Sandwich Ham: " . $HamSandwichMais . "
}
etc
Met deze code:
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?
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 . "
Maïs 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 . "
Maïs 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
de broodjes niet direct in je email plaatsen maar opbouwen in een variabele
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> Maïs Sandwich Ham: " . $HamSandwichMais . ";
}
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Bestelling: " . $bestelling . "
------------------------------------";
?>
if !empty($HamSandwichMais)
{
$bestelling = $bestelling.'<br> Maïs Sandwich Ham: " . $HamSandwichMais . ";
}
____________________________________
Naam: " . $naam . "
Email: " . $email . "
Broodje: " . $broodje . "
Bericht: " . $bericht . "
Bedrijfsnaam: " . $bedrijfsnaam . "
Betaalwijze: " . $betaalwijze . "
Bestelling: " . $bestelling . "
------------------------------------";
?>



