如何将HTML选择选项值解析为PHP邮件

如何将HTML选择选项值解析为PHP邮件,php,html,parsing,mailer,Php,Html,Parsing,Mailer,我正在使用一个旧网站发送一封电子邮件,一旦表格已经提交 它正在正确发送输入文本,但未发送正确的选择选项 以下是我正在使用的PHP/HTML页面: // array to create title select options <?php $selectArray1 = array ('Mr'=>'Mr', 'Mrs'=>'Mrs', 'Miss'=>'Miss',

我正在使用一个旧网站发送一封电子邮件,一旦表格已经提交

它正在正确发送输入文本,但未发送正确的选择选项

以下是我正在使用的PHP/HTML页面:

// array to create title select options
<?php
$selectArray1 = array ('Mr'=>'Mr',
                  'Mrs'=>'Mrs',
                  'Miss'=>'Miss',
                  'Ms'=>'Ms',
                  'Dr'=>'Dr');
?>

// below select box only sending the first option (Mr)
<label for="title">Title</label>
<select id="title" name="title[]">
<?php
foreach ($selectArray1 as $val_title){
echo "<option value=\"$val_title\">";
echo $val_title;
echo "</option>";
}
?>
</select>

//below input in sending correctly
<label for="name">Name</label></td>
<input id="name" name="name" maxlength="50" type="text" value="">
//创建标题选择选项的数组
//下面的选择框仅发送第一个选项(Mr)
标题
//在正确发送时输入以下内容
名称
因此,无论我从下拉列表中选择说“小姐”,收到的电子邮件都会以“先生”作为标题

以下是提交表单时的操作邮件程序:

<?php

// Grab our config settings
require_once($_SERVER['DOCUMENT_ROOT'].'/Site/config.php');

// Grab the FreakMailer class
require_once($_SERVER['DOCUMENT_ROOT'].'/Site/lib/MailClass.inc');

// instantiate the class
$mailer = new FreakMailer();

// Set the subject
$mailer->Subject = 'Finance Enquiry - Site.co.uk';

// Body
$mailer->Body = 'Finance Enquiry from Site.co.uk' . "\n\n" . $_POST['title'] .      "\n\n" . $_POST['name'] . "\n\n" . $_POST['user-email'];


// Add an address to send to.
$mailer->AddAddress('mail@mail.co.uk', 'Site');

if(!$mailer->Send())
{
echo 'There was a problem sending this mail!';
}
else
{
echo 'Mail sent!';
}
$mailer->ClearAddresses();
$mailer->ClearAttachments();
?>


上面的
$\u POST['title']
就是我遇到问题的地方。如何更改代码,以便从用户输入发送正确的选择选项?

为什么将选择命名为“title[]”,而只需将其重命名为“title”并检查代码即可。只有在必须接受多个值时,方括号才是必需的。

必须使用“title”而不是“title[]”作为
的名称:

这项工作:

<?php
$selectArray1 = array ('Mr'=>'Mr',
                  'Mrs'=>'Mrs',
                  'Miss'=>'Miss',
                  'Ms'=>'Ms',
                  'Dr'=>'Dr');
?>
<form action="test.php?done=1" method="POST">

<label for="title">Title</label>
<select id="title" name="title">
<?php
foreach ($selectArray1 as $val_title){
echo "<option value=\"$val_title\">";
echo $val_title;
echo "</option>";
}
?>
</select>

<input type="submit">
</form>

<?php

if( $_GET["done"] == 1 )
{
    echo "Output:".$_POST["title"];
}
?>

标题

事实证明,这是一个愚蠢的错误,输入名称/ID存在冲突


ID
title
被分配给了我表单上的另一个元素,该元素导致了冲突。

我删除了[],它仍然不起作用,但随后更改了title-to-title表单的所有实例(只是标题以外的任何内容),现在它似乎起作用了。这听起来有点奇怪,因为我的代码运行在我非常便宜的web主机上。因此,它可能取决于您的PHP配置。带[]的名字肯定是错的,但我很高兴你找到了解决问题的方法。