我正在使用phpmailer处理电子邮件形式,每次复选框都为空时出现问题,因此我发现问题出在以下波纹管中:
$f_select = '';
foreach ($_POST['select'] as $key => $value) {
$f_select .= $value."\r\n";
}
它返回以下错误:
警告:为中的foreach()提供了无效的参数 /home/alive-web-tech/www/nagoyashobotenken/contact/complete.php on 第23行
如何解决此问题?我想我需要创建一个条件来告诉您,当复选框值为空时,必须采取某些措施来防止出现该错误。
答案 0 :(得分:3)
有两种方法可以解决此问题。
如果即使您确实没有选中复选框的值,也必须更新表单以为每个复选框包含一个值为0的隐藏输入:
<input type="hidden" name="select[firstCheckbox]" value="0" />
<input type="checkbox" name="select[firstCheckbox]" />
如果您不关心复选框的空值,则可以在进入循环之前简单地验证发布的数据是否为空:
$f_select = '';
if (!empty($_POST['select'])) {
foreach ($_POST['select'] as $key => $value) {
$f_select .= $value."\r\n";
}
}
答案 1 :(得分:1)
在调用$_POST['select']
之前,您需要检查foreach()
是否为空。
您可以尝试以下操作:
$f_select = '';
if (!empty($_POST['select'])) {
foreach ($_POST['select'] as $key => $value) {
$f_select .= $value."\r\n";
}
}
答案 2 :(得分:1)
在循环浏览其内容之前,您必须检查$_POST['select]
。
$f_select = '';
if (!empty($_POST['select'])) {
foreach ($_POST['select'] as $key => $value) {
$f_select .= $value."\r\n";
}
}