Jump to content

Send e-mail to one or more recipients selected in HTML form


peasy_op

Recommended Posts

I got a form which people can use to send a request for information to one or more recipients, depending on which recipients have been selected in the form. At the moment the HTML checkboxes all have a different name attribute and e-mails are sent using an if statement:

 

<input type="checkbox" name="mr-a" value="A" /> A<br />
<input type="checkbox" name="mr-b" value="B" /> B<br />
<input type="checkbox" name="mr-c" value="C" /> C<br />

if (isset($_POST['mr-a'])) {
// Send e-mail to A
}
if (isset($_POST['mr-b'])) {
// Send e-mail to B
}
if (isset($_POST['mr-c'])) {
// Send e-mail to C
}

 

I'm sure there's a much better way of doing this, and I think I should start by creating an array of checkboxes. But I can't figure out how to then use a loop to send the e-mails. Here's the code I got so far. I'm hoping that all I need is a loop where is says 'Send e-mails using a foreach loop?':

 

<?php

// Minimal validation:
if (isset($_POST['submit'])) {
$errors = array();
if (!$_POST['name'] ) {
	$errors[] = 'Error: no name entered';
} else {
	$name = $_POST['name'];
	}
if (!$_POST['email'] ) {
	$errors[] = 'Error: no e-mail address entered';
} else {
	$email = $_POST['email'];
	}
if (!count($errors)) {
	// Send e-mails using a foreach loop?
}
?>		

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Lorem Ipsum</title>
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body id="index" class="home">

<h1>Lorem Ipsum</h1>
<p>Confirmation message.</p>

</body>
</html>

<?php
// Get out!
exit(0);
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Lorem Ipsum</title>
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body id="index" class="home">

<h1>Lorem Ipsum</h1>
<p>Contact A, B and/or C.</p>

<?php
if (isset($errors)) {
	foreach ($errors as $error) {
	echo("<p class=\"red\">$error<p>");
	}
}
?>

<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<fieldset>
  <legend>Who do you want to contact</legend>
  <input type="checkbox" name="mr[]" value="A" /> A<br />
  <input type="checkbox" name="mr[]" value="B" /> B<br />
  <input type="checkbox" name="mr[]" value="C" /> C<br />
</fieldset>

<br />

<fieldset>
  <legend>Your Details</legend>
  <label for="name">Name</label><input type="text" name="name" value="<?php if (isset($_POST['name'])) {echo $_POST['name'];}?>"><br />
  <label for="email">Email</label><input type="email" name="email" value="<?php if (isset($_POST['email'])) {echo $_POST['email'];}?>"><br />
  <input type="submit" name="submit" value="Next" />
</fieldset>
</form>

</body>
</html>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.