我是新来的,并试图在询问之前搜索现有的帖子,但是找不到一个对我有用的东西,这对于修复我的表格非常有用。 我还在学习这个 - 所以不确定我在表格中做错了什么。
使用此表格我会在下面附上,我收到此警告/错误'在我的浏览器顶部:
注意:第25行的/home/adk819/public_html/DummyWebs/DCC2/send_form_email.php中的未定义索引:checkbox_group_1
警告:implode()[function.implode]:第25行/home/adk819/public_html/DummyWebs/DCC2/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/ 我已经请求了他们的帮助 - 但尚未解决:(。
感谢大家给予我任何帮助! 玛丽〜
答案 0 :(得分: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会因为期待一个数组而感到不快。
答案 1 :(得分:0)
未检查的复选框不会随表单一起提交。如果在特定组中选中了“否”复选框,则不会提交该组名称,最终导致checkbox_group_n
未定义。你需要像
if (isset($_POST['checkbox_group_1'])) {
implode...
}
答案 2 :(得分:0)
我建议在破坏它们之前检查$ _POST值。
如果未选中特定组中的复选框,则不会发布该变量,也不会定义该变量。
此示例使用PHP的empty()
和ternary operators:
$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";