我一直在为网站制作联系表格,我遇到了这个问题: 我有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”,当选择其中一个时,我得到它的值。问题是,当我选择多个时,我会在我的电子邮件中收到: 您想要什么样的设置?:数组(不是所选内容的名称)。
我不知道我需要改变什么才能让它以正确的方式运作。
非常感谢任何帮助。
答案 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";
}