1

我是新来的,在询问之前尝试搜索现有的帖子,但找不到适合我的帖子,正好可以修复我的表格。我还在学习这个 - 所以不确定我在表格中做错了什么。

我将在下面附上这个表格,我在浏览器顶部收到此警告/错误:

注意:未定义索引:第 25 行 /home/adk819/public_html/DummyWebs/DCC2/send_form_email.php 中的 checkbox_group_1
警告:implode() [function.implode]:/home/adk819/public_html/DummyWebs/DCC2/ 中传递的参数无效第 25 行的 send_form_email.php

这是我的 html (只有错误是针对 - 这是一个相当大的形式:/):

<form class="formTemplate" method="POST" action="send_form_email.php">
<div>
<fieldset><!-- Wrap checkbox/radio button groups in fieldsets -->
<legend id="casetype">Case Type</legend>
<div>
<input type="checkbox" id="casetype_1" name="checkbox_group_1[]" value="Rackmount" />
<label for="casetype_1">Unknown</label>
</div>
<div>
<input type="checkbox" id="casetype_2" name="checkbox_group_1[]" value="Injection" />
<label for="casetype_2">Injection Molded</label>
</div>
<div>
<input type="checkbox" id="casetype_3" name="checkbox_group_1[]" value="Rotationally" />
<label for="casetype_3">Rotationally Molded</label>
</div>
<div>
<input type="checkbox" id="casetype_4" name="checkbox_group_1[]" value="Rackmount" />
<label for="casetype_4">Rack Mount</label>
</div>
</fieldset>
</div>
</form>

这是我的 php(用于上述区域):

$casetype = implode(' | ', $_POST['checkbox_group_1']);

// Construct email body

$email_message .= "Case Type: ". $casetype . "\r\n";

我在这里找到了制作表单这一部分的信息: http ://webdesy.com/how-to-create-html-php-contact-form-radio-buttons-checkboxes-dropdown-menu/ 我已经寻求他们的帮助 - 但目前还没有修复:(。

谢谢大家能给我的任何帮助!玛丽~

4

3 回答 3

1

尝试在issset中绑定你的代码,它只会在复选框变量存在时执行

if(is_array($_POST['checkbox_group_1']) && isset($_POST['checkbox_group_1']))
{
$casetype = implode(' | ', $_POST['checkbox_group_1']);

// Construct email body

$email_message .= "Case Type: ". $casetype . "\r\n";
}

该错误基本上是每当您的复选框未设置为数组时,因此当您尝试对其进行内爆时,PHP 会不高兴,因为它需要一个数组。

于 2013-10-21T19:03:44.167 回答
0

未选中的复选框不会与表单一起提交。如果在特定组中没有选中任何复选框,则不会提交该组名,并且您最终会checkbox_group_n被未定义。你需要类似的东西

if (isset($_POST['checkbox_group_1'])) {
  implode...
}
于 2013-10-21T19:01:13.817 回答
0

我建议在爆破之前检查 $_POST 值。

如果未选中特定组中的复选框,则该变量将不会被发布并且将是未定义的。

此示例使用 PHPempty()三元运算符

$casetype = !empty($_POST['checkbox_group_1']) 
              ? implode(' | ', $_POST['checkbox_group_1'])
              : false;

编辑:

如果组中未选择任何选项,您还可以显示特定消息。
不要将缺失值设置为false,而是将它们设置为其他值:

$casetype = !empty($_POST['checkbox_group_1']) 
              ? implode(' | ', $_POST['checkbox_group_1'])
              : "n/a";
于 2013-10-21T19:02:31.720 回答