如何通过电子邮件php通过$ _POST获取多个复选框值

时间:2014-01-13 06:33:29

标签: php html email

我的复选框

的html表单
<form  method="POST" class="registrationForm" id="registrationForm" action="processmail.php">
   <input type="checkbox" name="Activity[]" value="value1"  /> value1 <br>
    <input type="checkbox" name="Activity[]" value="value2"  /> value2<br>
    <input type="checkbox" name="Activity[]" value="value3"  /> value3 <br>

    <input type="submit" id="sendMessage" name="sendMessage" value="Submit" />
</form>

我的processmail.php

$message .= "<table border='1'>";
$message .= "<tr><td>Field of Activity    </td>.  <td>".$_POST['Activity']."</td></tr>";
$message .= "</table>";

通过使用上面的语法,它只显示“Array”作为我的Field of Activity字段的选项,plz帮助我获得用逗号分隔的选项....

5 个答案:

答案 0 :(得分:2)

您需要遍历复选框的值。

现在,它获取数组而不是字符串。

因此,它打印为Array

你可以这样做:

<?php
$ActivityStr = '';
if (isset($_POST['checkboxName']) && count($_POST['checkboxName']) > 0) {
    $i=0;
    foreach ($_POST['checkboxName'] as $cbox) {
        if ($i>0){
            $ActivityStr .= ',';
        }
        $ActivityStr .= $cbox;
        ++$i;
    }
}
$message .= ""; $message .= "Field of Activity ".$ActivityStr."";
$message .= "";
?>

答案 1 :(得分:0)

选择在一个数组中 - 每个选项选择一个元素。您可以使用foreach循环遍历这些元素并显示它们。

答案 2 :(得分:0)

使用PHP内爆函数:

http://php.net/function.implode

替换

$message .= "<tr><td>Field of Activity    </td>.  <td>".$_POST['Activity']."</td></tr>";

$message .= "<tr><td>Field of Activity    </td>.  <td>".implode(',', $_POST['Activity'])."</td></tr>";

此外 - 为了防止潜在恶意用户通过在提交前编辑复选框值将html注入您的页面,使用htmlentities也可以在将数据重新呈现到页面之前转义数据

$message .= "<tr><td>Field of Activity    </td>.  <td>".implode(',', array_map('htmlentities', $_POST['Activity']))."</td></tr>";

答案 3 :(得分:0)

试试这个来搞清楚。

<?php print_r($_POST); ?>

或者即使你不知道它是POST还是GET。

<?php print_r($_REQUEST); ?>

无论如何,这是一个数组,我想你可以使用foreach()

foreach($_POST['Activity'] as $value) {
    echo "value is $value";
}

答案 4 :(得分:0)

$message .= "<tr><td>Field of Activity    </td>.  <td>".$_POST['Activity']."</td></tr>";

$message .= "<tr><td>Field of Activity    </td>.  <td>".implode(',',$_POST['Activity'])."</td></tr>";