Problems with php form - want to use a dropdown to choose the department an email goes to

Hi
I've taken some code from another question on this site but it won't work for me. I am trying to create a contact form that sends an email to a specific department based on the dropdown option selected.

When I load the files onto my server and submit, all that happens is I get directed to the php page but no email comes through.

Please could you have a look at my code and see if I'm missing something or doing something wrong. Thanks in advance!
Heres the html:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="my.css">
 
<title>Untitled Document</title>
</head>
 
<body>
<form action="feedback.php" method="post">
<div align="center">
	<table border="0" cellpadding="8" cellspacing="8" summary="feedback form">
		<tr>
			<td><div align="left"><font size="2" class="bodys">Your Name:</font></div></td>
			<td><div align="left">
			  <input type="text" name="name" size="25" />
			  </div></td>
		</tr>
		<tr>
			<td><div align="left"><font size="2" class="bodys">Email address:</font></div></td>
			<td><div align="left">
			  <input type="text" name="email" size="25" />
			  </div></td>
		</tr>
		<tr>
			<td colspan="2"><p align="left"><font size="2" class="bodys">Question or Request:</font><font size="1"><br /></font>
				<textarea rows="8" cols="40" name="comments"></textarea>
			</p>			</td>
		</tr>
		<tr>
			<td colspan="2">
				<div align="left">
				  <select name="dept">
				    <option>Logistics</option>
				    <option>HPI Queries</option>
				    <option>V5 Queries</option>
			      </select>
                </div></td>
		</tr>
		<tr>
			<td align="center" colspan="2"><div align="left">
			  <input type="submit" value="Send " />
			  <br />			
		    </div></td>
		</tr>
	</table>
</div>
</form>
 
</body>
</html>
 
and here's the php:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="my.css">
<title>Untitled Document</title>
</head>
 
<body>
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$question = $_POST["comments"];
$dept = $_POST["dept"];
 
if ($dept == "Logistics")  $emailaddress="myemail1@gmail.com";
elseif ($dept == "HPI Queries") $emailaddress = "myemail2@gmail.com";
elseif ($dept == "V5 Queries") $emailaddress = "myemail3@googlemail.com";
 
else {exit;}
 
mail($email,"Webpage Comments",$question,"From: <myemail1@gmail.com>");
 
?>
</body>
</html>

Open in new window

GizmoPigAsked:
Who is Participating?
 
Chris HarteConnect With a Mentor ThaumaturgeCommented:
You have $email and $emailaddress which is never used. Submit the address as a value when you select the drop down. See attached code

Heres the html:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="my.css">
 
<title>Untitled Document</title>
</head>
 
<body>
<form action="feedback.php" method="post">
<div align="center">
<table border="0" cellpadding="8" cellspacing="8"
	summary="feedback form">
	<tr>
		<td>
		<div align="left"><font size="2" class="bodys">Your Name:</font></div>
		</td>
		<td>
		<div align="left"><input type="text" name="name" size="25" /></div>
		</td>
	</tr>
	<tr>
		<td>
		<div align="left"><font size="2" class="bodys">Email address:</font></div>
		</td>
		<td>
		<div align="left"><input type="text" name="email" size="25" /></div>
		</td>
	</tr>
	<tr>
		<td colspan="2">
		<p align="left"><font size="2" class="bodys">Question or Request:</font><font
			size="1"><br />
		</font> <textarea rows="8" cols="40" name="comments"></textarea></p>
		</td>
	</tr>
	<tr>
		<td colspan="2">
		<div align="left"><select name="dept">
			<option value="logistics@gmail.com">Logistics</option>
			<option value="hpt_queries@gmail.com">HPI Queries</option>
			<option value="v5_queries@gmail.com">V5 Queries</option>
		</select></div>
		</td>
	</tr>
	<tr>
		<td align="center" colspan="2">
		<div align="left"><input type="submit" value="Send " /> <br />
		</div>
		</td>
	</tr>
</table>
</div>
</form>
 
</body>
</html>
 
and here's the php:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" rel="stylesheet" href="my.css">
 
 
<title>Untitled Document</title>
</head>
 
<body>
<?php
$name = $_POST["name"];
$email = $_POST["email"];
$question = $_POST["comments"];
$dept = $_POST["dept"];
 
 
mail($dept, "Webpage Comments", $question, "From: $email");
 
?>
</body>
</html>

Open in new window

0
 
GizmoPigAuthor Commented:
That worked beautifully. Thanks so much for your help - I was tearing my hair out over this one!!
0
 
GizmoPigAuthor Commented:
Just come up against one slight problem - I need to display the name and email fields in the emails that are sent as well. Adding the name and email tags like so -  mail($dept, "Webpage Comments", $name,$email,$question, "From: $email"); seems to break the code. Any suggestions at all? Thanks
0
 
Chris HarteThaumaturgeCommented:
This question is closed so you should open a new one, but::: you have changed the number of arguments, don't. put it in the header at the end
mail($dept, "Webpage Comments", $question, "From: $email name $name");
0
 
GizmoPigAuthor Commented:
Sorry - I wasn't very clear there. I need the name and email of the person who sent the request to appear in the body of the email. This solution makes it appear in the address from line.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.