【问题标题】:how to get multiple checkbox value through $_POST via email php如何通过电子邮件php通过$_POST获取多个复选框值
【发布时间】:2014-01-13 06:33:29
【问题描述】:

我的复选框的 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>";

通过使用上述语法,它只显示“数组”作为我的活动字段字段的选项,请帮助我获取用逗号分隔的选项,这些选项被选中......

【问题讨论】:

    标签: php html email


    【解决方案1】:

    您需要遍历复选框的值。

    现在,它得到一个数组而不是字符串。

    因此,它打印为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 .= "";
    ?>
    

    【讨论】:

    • 考虑在元素之间添加逗号或类似的东西。为什么要与空字符串连接?但是是的,这是正确的方法。
    • 是的,我会考虑逗号。
    • 见下面的答案 - 内爆正是为此而设计的 - 无需对结果进行分析。
    【解决方案2】:

    使用 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】:

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

    【讨论】:

      【解决方案4】:
      $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>";
      

      【讨论】:

        【解决方案5】:

        试试这个来弄明白。

        <?php print_r($_POST); ?>
        

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

        <?php print_r($_REQUEST); ?>
        

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

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

        【讨论】:

        • 如果他将数组转换为字符串,那是为什么
        • 这就是我会做的发现格式然后在我知道它的结构后拆分它。
        • 是的,但很明显,因为在 html 中,如果你检查它,你会看到复选框将作为一个数组出现......
        • 我猜你是对的,但这就是我检查 PHP 如何读取表单变量的方式。我永远都记不住它们:P,好吧,这不是一个好的答案,我应该将其作为评论发布。
        • :) 不只是硬核 :)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-13
        • 2018-08-17
        • 2021-02-08
        相关资源
        最近更新 更多