复选框在电子邮件中输入信息

时间:2012-12-13 10:20:17

标签: php html email contact-form

我有一些代码可以在我提交的电子邮件中的复选框中显示输入信息。这非常好用,但是当用户没有从复选框中做出选择时,我希望它在我的电子邮件中显示“未选中选项”。我怎样才能做到这一点?以下是相关代码 - 我需要为这两个复选框实现此目的。我假设我需要某种ELSE声明。

代码:

if(!empty($_POST['features'])) {
foreach($_POST['features'] as $value) {
    $check_msg1 .= "Features checked: ".$value."\n";          
}}

if(!empty($_POST['fright'])) {
foreach($_POST['fright'] as $value) {
    $check_msg2 .= "Fright checked: ".$value."\n";            
}}

3 个答案:

答案 0 :(得分:1)

一旦未选中复选框值,则不会提交,因此如果$_POST['cb_name']为空,则不会检查任何内容。根据这个,你需要这样的代码('惊吓'相同):

if(!empty($_POST['features'])) {
   foreach($_POST['features'] as $value) {
       $check_msg1 .= "Features checked: ".$value."\n";          
   }
} else {
   $check_msg1 .= "No options checked\n"
}

答案 1 :(得分:1)

如果用户未检查任何内容,则不会有$ _POST ['features']或$ _POST ['fright']

你需要做一个isset,或者更确切地说是一个! isset

if ( ! isset($_POST['features']))
{
    $check_msg1 .= "No features selected.\n";
}
else
{
    foreach ($_POST['features'] as $value)
    {
        $check_msg1 .= "Features checked: " . $value . "\n";
    }
}

if ( ! isset($_POST['fright']))
{
    $check_msg2 .= "No fright selected.\n";
}
else
{
    foreach ($_POST['fright'] as $value)
    {
        $check_msg2 .= "Fright checked: " . $value . "\n";
    }
}

答案 2 :(得分:1)

尝试:

if(isset($_POST['features'])) {
foreach($_POST['features'] as $value) {
    $check_msg1 .= "Features checked: ".$value."\n";          
}}
else {
    $check_msg1 .= "No options checked \n";
}

if(isset($_POST['fright'])) {
foreach($_POST['fright'] as $value) {
    $check_msg2 .= "Fright checked: ".$value."\n";            
}}
else {
    $check_msg2 .= "No options checked \n";
}

如果未选中任何选项,则POST不会为复选框返回任何值。因此,您需要检查是否已设置POST数组中的值。即使选中了复选框,检查'empty'也会返回true,但它的值为空。