blepblep Posted July 5, 2012 Share Posted July 5, 2012 Hi, wondering could anyone help me here again. I have been asked to implement a email feature depending on a selection. I've seen plenty of examples online about doing it from a drop down, but I need to do it without a drop down menu. The user has 9 forms to choose from. Each of these forms has a name, say TC CNOSS, TC OSS RC etc for example (These forms are selected from a drop down menu but this drop down menu is not populated from the database, it is hard coded). When the user fills in a form, they get an ID which they enter to a search menu. This returns the form they filled in, but with a small bit of extra information needing to be filled in. After they fill in this extra bit of information, I have a button that says 'Send to X for approval'. This button goes to another page which performs the below code - Now the part I am stuck at is, how do I send an email to say TC CNOSS if the user is filling in a form of TC CNOSS? I just want the email to say 'TC Number 10 needs to be approved' and then include a link to my site. <?php $reviewForum = $post['reviewForum']; if(isset($_POST['submit'])) { if ($post['reviewForum'] = 'TC CNOSS') { // The message $message = "Line 1\nLine 2\nLine 3"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70); // Send mail('testemail@test.com', 'My Subject', $message); } } ?> Thanks to anyone who can help, if there is any more info needed just ask. Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/ Share on other sites More sharing options...
Zephni Posted July 5, 2012 Share Posted July 5, 2012 Not quite sure what your looking to do here, but the first thing I noticed in the code was that there was only one '=' sign meaning the if statement is always true. Also why did you set the variable of the post value and then use the post variable in the if statement? Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359286 Share on other sites More sharing options...
blepblep Posted July 5, 2012 Author Share Posted July 5, 2012 What I want to do is to send an email to an address based on a forum. There is 9 forums to choose from in a drop down menu but these are hard coded in. Sorry I shouldn't have set the variable of the post outside the if statement. My bad sorry! I dont no how I can send an email based on a certain form that the user selects. Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359290 Share on other sites More sharing options...
blepblep Posted July 5, 2012 Author Share Posted July 5, 2012 This was the original idea I had in my head as to how I was going to code it but it doesnt work - $email_location = $_POST['location']; // the value from your form if($email_location == "Atlanta") { // a form value and a location $your_email = "atlanta@email.com"; // the email for that location } else if ($email_location == "Colorado") { $your_email = "colorado@email.com"; } else if ($email_location == "Virginia") { $your_email = "virginia@email.com"; } else if ($email_location == "Kansas City") { $your_email = "kansas@email.com"; } else { // if no one is good, send it to this email $your_email = "standard@email.com"; } Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359295 Share on other sites More sharing options...
cyberRobot Posted July 5, 2012 Share Posted July 5, 2012 What does your form code look like? Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359296 Share on other sites More sharing options...
blepblep Posted July 5, 2012 Author Share Posted July 5, 2012 What does your form code look like? It is incredibly messy, the first half of it was coded by myself and the second by someone else. Heres a snippet of mine with the code getting the reviewForum. The reviewForum is what I want to send the email to, so instead of having a drop down menu that contains the 9 forums, I just want to have some sort of condition that checks if it is TC CNOSS send an email to tcnoss@email.com, if it is TC TOR send an email to tctor@email.com etc etc.. Is this possible do you think? <tr> <th>Review Forum</th> </tr> <td>" . custOut($row['reviewForum']) . "</td> My button code - <td> <form id='sendEmail' action = \"sendMomEmail.php\" method = \"post\"> <input type = \"submit\" value = \"Send email for approval\" style='display:inline;' onclick =\"sendMomEmail.php\"> </form> </td> Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359299 Share on other sites More sharing options...
cyberRobot Posted July 5, 2012 Share Posted July 5, 2012 Instead of forms, could you links? <tr><th>Review Forum</th><th>Review ID</th><th>Send E-mail</th></tr> <tr><td>TC CNOSS</td><td>TC19</td><td><a href="sendMomEmail.php?sendemail=TCCNOSS">Send e-mail to TC CNOSS</a></td></tr> The links could be processed with a switch(): <?php switch($_GET['sendemail']) { case 'TCCNOSS': $toEmail = 'TCCNOSS@test.com'; break; } // The message $message = "Line 1\nLine 2\nLine 3"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70); mail($toEmail, 'My Subject', $message); ?> Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359306 Share on other sites More sharing options...
blepblep Posted July 5, 2012 Author Share Posted July 5, 2012 Instead of forms, could you links? <tr><th>Review Forum</th><th>Review ID</th><th>Send E-mail</th></tr> <tr><td>TC CNOSS</td><td>TC19</td><td><a href="sendMomEmail.php?sendemail=TCCNOSS">Send e-mail to TC CNOSS</a></td></tr> The links could be processed with a switch(): <?php switch($_GET['sendemail']) { case 'TCCNOSS': $toEmail = 'TCCNOSS@test.com'; break; } // The message $message = "Line 1\nLine 2\nLine 3"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70); mail($toEmail, 'My Subject', $message); ?> I can't use links like that. The Review Forum and Review ID I posted in the screenshot from search result so they are different each time. Could you explain this to me please - <td><a href="sendMomEmail.php?sendemail=TCCNOSS">Send e-mail to TC CNOSS</a></td></tr> How will the above work if it is a different forum to TC CNOSS? As there is 9 possible ones and I don't no how that would work with the sendemail = TCCNOSS part? These are the different forums - TC CNOSS, TC PM, TC OSS RC, TC Arch Board, TC TOR, TC PF, TC WRAN, TC GRAN, TC Navigator. I am wondering how could I do it the way you described but instead of naming the link TC CNOSS as this could be different depending on what Review Forum it is.. Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359308 Share on other sites More sharing options...
cyberRobot Posted July 5, 2012 Share Posted July 5, 2012 Basically, you would create however many links you would need: <tr><th>Review Forum</th><th>Review ID</th><th>Send E-mail</th></tr> <tr><td>Forum 1</td><td>...</td><td><a href="sendMomEmail.php?sendemail=forum1">Send e-mail to Forum 1</a></td></tr> <tr><td>Forum 2</td><td>...</td><td><a href="sendMomEmail.php?sendemail=forum2">Send e-mail to Forum 2</a></td></tr> <tr><td>Forum 3</td><td>...</td><td><a href="sendMomEmail.php?sendemail=forum3">Send e-mail to Forum 3</a></td></tr> Note that the "Send e-mail to Forum 1" could say anything you want. It could also be an image that looks like a button. Here is one way to process the above links: <?php switch($_GET['sendemail']) { case 'forum1': $toEmail = 'email1@test.com'; break; case 'forum2': $toEmail = 'email2@test.com'; break; case 'forum3': $toEmail = 'email3@test.com'; break; } // The message $message = "Line 1\nLine 2\nLine 3"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70); mail($toEmail, 'My Subject', $message); ?> Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359311 Share on other sites More sharing options...
blepblep Posted July 5, 2012 Author Share Posted July 5, 2012 Ahhh ok, I see what you mean. Thanks for that. Is there a way I can do it like this? And then, depending on what is selected, send an email to that address? Am I wrong in saying how you have it done for me, it will display 3 links that I can click on each time, so instead of just showing one link it will show however many is created? Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359324 Share on other sites More sharing options...
cyberRobot Posted July 5, 2012 Share Posted July 5, 2012 The code is pretty much the same, you're just dealing with a POST variable versus GET. For a drop down that looks like the following: <form method="post" action="sendMomEmail.php"> <select name="selectDept"> <option value="">Please Choose Dept.</option> <option value="TC OSS RC">TC OSS RC</option> <option value="TC OSS Arch Board">TC OSS Arch Board</option> </select> <input type="submit" value="Send email for approval"> </form> The switch() could be modified to <?php switch($_POST['selectDept']) { case 'TC OSS RC': $toEmail = 'TCOSSRC@test.com'; break; case 'TC OSS Arch Board': $toEmail = 'TCOSSArchBoard@test.com'; break; } // The message $message = "Line 1\nLine 2\nLine 3"; // In case any of our lines are larger than 70 characters, we should use wordwrap() $message = wordwrap($message, 70); mail($toEmail, 'My Subject', $message); ?> Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359366 Share on other sites More sharing options...
cyberRobot Posted July 5, 2012 Share Posted July 5, 2012 Am I wrong in saying how you have it done for me, it will display 3 links that I can click on each time, so instead of just showing one link it will show however many is created? That is correct. The link version of the code will show 3 links (or however many links are created). Quote Link to comment https://forums.phpfreaks.com/topic/265234-send-email-to-address-based-on-text-choice/#findComment-1359369 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.