Hallo allemaal!
Ik heb al eens een bericht geplaatst, maar nooit antwoord gehad. Dus liet ik dat stukje voor gezien, maar ik stuit nu op een ander probleem.
Het is een simpel contact formulier. Maakt me niet uit of er slechte dingen aan zitten, want hij doet het! Bij een formulier is het natuurlijk mogelijk dat mensen sommige dingen niet hoeven, dus hoeven ze die velden niet in te vullen. Nu wil ik er voor zorgen dat het emailtje deze dingen weg laat, maar ik heb geen enkel idee hoe ik dat voor elkaar krijg.

---- Formulier ----

<form action="contact.php" method="post">
	<div class="urbangreymenu">

		<h3 class="headerbar"><a href="#" class="link">Contactgegevens</a></h3>
			<div class="submenu">
				<div>
					<label for="naam">Naam:</label> <input type="text" name="yourname">
				</div>
				<div>
					<label for="onderwerp">Onderwerp:</label> <input type="text" name="subject">
				</div>
				<div>
					<label for="email">E-mail:</label> <input type="text" name="email">
				</div>
				<div>
					<label for="telnr">Tel.nr:</label> <input type="text" name="telefoon">
					
				</div>
			</div>

		<h3 class="headerbar"><a href="#" class="link">Spiegels</a></h3>
			<div class="submenu">
				<div>
					<label for="naam">Aantal:</label> <input type="text" name="spiegels_aantal">
				</div>
				<div>
					<label for="naam" class="dropdown">Kleuren:</label>
					<select name="spiegels">
						<option value=""> -- Gelieve te selecteren -- </option>
						<option value="Brons">Brons</option>
						<option value="Blauw">Blauw</option>
						<option value="Zilver">Zilver</option>
						<option value="Veiligheid">Veiligheidsspiegels</option>
						<option value="Meedere kleuren">Meerdere kleuren op aanvraag</option>
					</select>
				</div>
				<div>
					<label for="spiegels_anderekleur">Anders:</label> <input type="text" value="Vul andere kleur in" name="spiegels_anderekleur">
				</div>
			</div>
			
		<h3 class="headerbar"><a href="#" class="link">Isolatieglas</a></h3>
			<div class="submenu">
				<div>
					<label for="isolatieglas_aantal">Aantal:</label> <input type="text" name="isolatieglas_aantal">
				</div>
				<div>
					<label for="naam" class="dropdown">Isolatieglas:</label>
					<select name="isolatieglas">
						<option value=""> -- Gelieve te selecteren -- </option>
						<option value="Luchtgevuld">Luchtgevuld</option>
						<option value="HR+ Argongas / Cryptongas gevuld">HR+ Argongas / Cryptongas gevuld</option>
						<option value="HR++ Argongas / Cryptongas gevuld">HR++ Argongas / Cryptongas gevuld</option>
						<option value="Met kruisroede in verschillende kleuren">Met kruisroede in verschillende kleuren</option>
						<option value="In combinatie met gehard of gelaagd">In combinatie met gehard of gelaagd</option>
					</select>
				</div>
				<div>
					<label for="isolatieglas_uwaarde">U-waarde: </label>
					<select size="1" name="isolatieglas_uwaarde">
					<option>2,8 W/m2K bij 15 mm spouw lucht</option>
					<option>1,2 W/m2K bij 15 mm spouw argongas</option>
				</select>
				</div>
			</div>

		<h3 class="headerbar"><a href="#" class="link">Opmerkingen</a></h3>
			<div class="submenu">
				<div>
					<label for="comments">Comments:</label> <textarea name="comments"></textarea>
				</div>
				<div class="submitbutton">
					<input type="submit" value="Send it!" class="submit">
				</div>
				</form>
			</div>

</div>


--- PHP Email script ---

<?php
/* Set e-mail recipient */
$myemail  = "mijnemail";

/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject  = check_input($_POST['subject'], "Write a subject");
$email    = check_input($_POST['email']);
$telefoon    = check_input($_POST['telefoon']);
$website  = check_input($_POST['website']);
$likeit   = check_input($_POST['likeit']);
$isolatieglas_aantal = check_input($_POST['isolatieglas_aantal']);
$isolatieglas_uwaarde = check_input($_POST['isolatieglas_uwaarde']);
$isolatieglas = check_input($_POST['isolatieglas']);
$spiegels = check_input($_POST['spiegels']);
$spiegels_aantal = check_input($_POST['spiegels_aantal']);
$spiegels_anderekleur = check_input($_POST['spiegels_anderekleur']);
$comments = check_input($_POST['comments'], "Write your comments");

/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
    show_error("E-mail address not valid");
}

/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
    $website = '';
}

/* Let's prepare the message for the e-mail */
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:

---------------------------- PERSOONLIJKE INFORMATIE ----------------------------

Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon

--------------------------------- ISOLATIEGLAS ----------------------------------

Aantal isolatieglas: $isolatieglas_aantal 
Isolatieglas: $isolatieglas 
U-waarde: $isolatieglas_uwaarde

----------------------------------- SPIEGELS ------------------------------------

Aantal spiegels: $spiegels_aantal 
Kleur: $spiegels
Andere kleur: $spiegels_anderekleur

---------------------------------- COMMENTAAR -----------------------------------

$comments

";

/* Send the message using mail() function */
mail($myemail, $subject, $message);

/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();

/* Functions we used */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem && strlen($data) == 0)
    {
        show_error($problem);
    }
    return $data;
}

function show_error($myError)
{
?>
    <html>
    <body>

    <b>Gelieve de volgende error te corrigeren:</b><br />
    <?php echo $myError; ?>

    </body>
    </html>
<?php
exit();
}
?>


Kortom: Als mensen bijvoorbeeld geen Isolatieglas willen, vullen ze dit ook niet in. Ik wil dus dat het emailtje ook niet de aspecten van Isolatieglas bevat, maar dit simpelweg weglaat.

Iemand een idee?

Ever
gewoon op checken of er iets voor isolatieglas is ingevuld.. dan laat je dat deel van je email zien, en anders niet.

voorbeeldje:

<?php
if($_POST['isolatie_aantal'])
{
// het isolatie gedeelte van je email
}
?>

je kan er ook nog een else achter zetten, maar dat lijkt me niet nodig
(!empty($_POST['isolatie_aantal'])) ? "Aantal isolatieglas: ".$isolatieglas_aantal : ""

Zoiets erin verwerken? (Is verkorte versie van Tamara's voorbeeld.)
Ik heb dat geprobeerd, dan heb ik de volgende code:


$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:

---------------------------- PERSOONLIJKE INFORMATIE ----------------------------

Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon

--------------------------------- ISOLATIEGLAS ----------------------------------


if($_POST['isolatieglas_aantal'])
{
Aantal isolatieglas: $isolatieglas_aantal;
}

 if($_POST['isolatieglas'])
{
Isolatieglas: $isolatieglas ;
}

if($_POST['isolatieglas_uwaarde'])
{
U-waarde: $isolatieglas_uwaarde;
}


Maar dit schijnt niet te werken, ik krijg een lege pagina als ik op submit klik.
Je moet dan nog wel de mail verzenden, heb je dat er wel instaan :P

De lege pagina kan volgens mij niet aan dat stukje liggen. Je moet de if blokken wel buiten " halen. ook de variabele zoals $yourname
Zou je dat misschien kunnen uitleggen?
In mijn eerste post staat het scriptje, dat ik het naar een email adres verstuur enzo, daar kan het niet aanliggen. Als ik die if-statements er in zet, dan doet ie het niet meer.

Als ik bijvoorbeeld:
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:"

doe (dus afsluiten met een "), dan loopt ie ook vast.
Dat komt omdat je de echo niet goed afsluit.

<?php
// Zo doet een echo het niet:
echo "een beetje tekst"

// Zo doet hij het wel:
echo "nog wat tekst";
?>
Je moet dus niet vergeten er een puntkomma achter te zetten. Anders geeft ie namelijk een foutmelding

quotes in een echo doe je zo:
<?php
echo "wat tekst" . $test . "en nog wat";

//hetzelfde kan ook met enkele quotes:
echo 'wat tekst' . $test . 'en nog wat';
?>

Je ziet nu ook dat de kleurtjes anders zijn ;)

Jaaa, okay. Dan heb ik het nu zo:

$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:";

Maar dan kom ik nog niet verder met die if statements, omdat ik niet weet wat hier aan scheelt:


$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:";

---------------------------- PERSOONLIJKE INFORMATIE ----------------------------

Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon

--------------------------------- ISOLATIEGLAS ----------------------------------


if($_POST['isolatieglas_aantal'])
{
Aantal isolatieglas: $isolatieglas_aantal;
}

 if($_POST['isolatieglas'])
{
Isolatieglas: $isolatieglas ;
}

if($_POST['isolatieglas_uwaarde'])
{
U-waarde: $isolatieglas_uwaarde;
}


Ik geef het niet op! :p

Reageren