基于select(php)的值发送表单

时间:2011-09-10 20:13:23

标签: php forms

我有一个用PHP处理的简单表单。在处理脚本中,我目前已经硬编码了[到]电子邮件地址。我想在包含位置列表的表单中添加一个选择字段...并根据所选位置...将表单发送到特定的电子邮件地址。例如:

<select id="location">
  <option value="location1">Location 1</option>
  <option value="location2">Location 2</option>
  <option value="location3">Location 3</option>
  <option value="location4">Location 4</option>
</select>

每个位置都有不同的电子邮件地址...因此表单内容将被发送到指定位置。

看起来很简单......但我完全迷失了。我是否将选项的值更改为其尊重的电子邮件地址?我不想这样做,因为它会暴露代码中的电子邮件。我想通过一系列if语句来处理处理脚本中的电子邮件地址:

if $_POST['location'] value = "location1" then [to] = location1@domain.com
if $_POST['location'] value = "location2" then [to] = location2@domain.com
if $_POST['location'] value = "location3" then [to] = location3@domain.com
if $_POST['location'] value = "location4" then [to] = location4@domain.com

然后做这样的事情:

...

$location = trim(stripslashes($_POST['location']));

...

$email['to'] = "{$location}";

...

有人可以帮助/建议正确设置此功能吗?

2 个答案:

答案 0 :(得分:2)

如果你只是制作一个关联数组怎么办:

每对位置和电子邮件

arr[$location] = $email;

然后,一旦你获得了$ _POST,你就可以:

$email_address = $arr[$_POST['location']];

现在你收到了你的电子邮件。

答案 1 :(得分:0)

您可以使用开关:

<?php 
    $location = $_POST['location'];

    switch($location){
        case "location1":
            $location='email1@example.com';
            break;
        case "location2":
            $location='email2@example.com';
            break;
        case "location3":
            $location='email3@example.com';
            break;
        case "location4":
            $location='email4@example.com';
            break;

        default:
            $location='error@example.com';
            break;
    }

?>