Versio

Bestelformulier output aanpassen

Overzicht Reageren

Mark Reijling

Mark Reijling

16/07/2010 19:15:54
Quote Anchor link
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.
Gewijzigd op 16/07/2010 19:19:55 door Mark Reijling
 
PHP hulp

PHP hulp

23/05/2012 22:59:55
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Aad B

Aad B

16/07/2010 20:06:43
Quote Anchor link
Wat heb je gemaakt ? Laat iets zien hier waarop gereageerd kan worden. Hoe werkt het formulier ?
 
Niels Kieviet
Beheerder

Niels Kieviet

16/07/2010 20:33:27
Quote Anchor link
Je kiest toch zelf wat je wel of niet verstuurd? Welke $_POST variablen?
 
Bas IJzelendoorn
Moderator

Bas IJzelendoorn

16/07/2010 21:24:01
Quote Anchor link
nee, ik denk dat hij bedoelt dat hij meerdere variable of posts als output heeft:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$_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.
 
Mark Reijling

Mark Reijling

17/07/2010 16:28:29
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.";
}

?>
 
Marco van dijk

marco van dijk

17/07/2010 17:29:24
Quote Anchor link
mooi contact formulier
 
Aad B

Aad B

17/07/2010 17:37:07
Quote Anchor link
De controle op bijvoorbeeld naam brengt me naar een nieuwe pagina. Gebruik wat javascript en je blijft op dezelfde pagina:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<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;">
.
.
Gewijzigd op 17/07/2010 17:41:47 door Aad B
 
Mark Reijling

Mark Reijling

18/07/2010 00:46:12
Quote Anchor link
Dutch Guy,

Waar plaats ik dan exact de !empty() code?
Gewijzigd op 18/07/2010 00:48:39 door Mark Reijling
 
Aad B

Aad B

18/07/2010 12:50:38
Quote Anchor link
if !empty($HamSandwichMais)
{
Maïs Sandwich Ham: " . $HamSandwichMais . "
}
etc
 
Mark Reijling

Mark Reijling

18/07/2010 13:11:41
Quote Anchor link
Met deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 . "
------------------------------------";

?>


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

Aad B

18/07/2010 13:20:34
Quote Anchor link
de broodjes niet direct in je email plaatsen maar opbouwen in een variabele
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 . "
------------------------------------";


?>
 



Overzicht Reageren

Get Adobe Flash player