$ _POST不会发送空复选框组

时间:2017-05-04 06:58:31

标签: php checkbox

我一直在为网站制作联系表格,我遇到了这个问题: 我有4个复选框组,每个复选框组至少有3个可用于检查的复选框。我们不希望他们发送电子邮件。所以代码是这样的:

$CheckboxGroup1 = array();
if(isset($_POST['submit'])){
    $name = $_POST['name'];
    $attending = $_POST['attending'];
    $CheckboxGroup1 = isset($_POST['CheckboxGroup1']) ? $_POST['CheckboxGroup1'] : 'Nothing checked';

HTML:

 <h4>What kind of set-up would you like?</h4>
 <p>Additional fees may apply for living room/specialty set-ups.</p>
 <p>
     <div class="inline-field">
         <label>
             <input type="checkbox" name="CheckboxGroup1[]" value="Living Room">
            Living Room
        </label>
        <br>
        <label>
            <input type="checkbox" name="CheckboxGroup1[]" value="Conference Room">
            Conference Room
        </label>
        <br>
        <label>
            <input type="checkbox" name="CheckboxGroup1[]" value="Other">
            Other (please specify at the end of the form)
        </label>
        <br>
    </div>
</p>

当没有选中任何复选框时,我收到消息“Nothing checked”,当选择其中一个时,我得到它的值。问题是,当我选择多个时,我会在我的电子邮件中收到: 您想要什么样的设置?:数组(不是所选内容的名称)。

我不知道我需要改变什么才能让它以正确的方式运作。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

您无法使用echo打印数组。 Echo数组将为您提供字符串Array。在您的情况下获取数组值的简单方法是使用implode

echo implode(', ', $yourArray);

答案 1 :(得分:1)

你必须在行下面改变

您的代码

$CheckboxGroup1 = isset($_POST['CheckboxGroup1']) ? $_POST['CheckboxGroup1'] :  'Nothing checked';

将其更改为

if( isset($_POST['CheckboxGroup1']))
{
 $CheckboxGroup1 =implode(", ",$_POST['CheckboxGroup1']);
}
else{
  $CheckboxGroup1="Nothing checked";
}