<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>
$message .= "<table border='1'>";
$message .= "<tr><td>Field of Activity </td>. <td>".$_POST['Activity']."</td></tr>";
$message .= "</table>";
通过使用上面的语法,它只显示“Array”作为我的Field of Activity字段的选项,plz帮助我获得用逗号分隔的选项....
答案 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>";