寻找无处不在,但找不到解决方案。每个人都在谈论一组像这样:如何在php表单处理器中获得多组复选框值?
<input type="checkbox" value="red" name="colors[]"> red<br />
<input type="checkbox" value="purple" name="colors[]"> purple<br>
<input type="checkbox" value="blue" name="colors[]"> blue<br>
<input type="checkbox" value="black" name="colors[]"> black<br>
,但我需要做多个组在一个单一的形式是这样的:
<input type="checkbox" value="red" name="colors[]"> red<br />
<input type="checkbox" value="purple" name="colors[]"> purple<br>
<input type="checkbox" value="blue" name="colors[]"> blue<br>
<input type="checkbox" value="black" name="colors[]"> black<br>
<input type="checkbox" value="sm" name="sizes[]"> small<br />
<input type="checkbox" value="med" name="sizes[]"> medium<br>
<input type="checkbox" value="lrg" name="sizes[]"> large<br>
<input type="checkbox" value="xlrg" name="sizes[]"> x-large<br>
,并在此之上的形式是动态的。名称是可变的和未知的,所以在PHP后代码中,它不能是$ _POST ['colors']。
我有这样的片段,可以抓住所有未知的名字,并建立一个消息后插入到邮件脚本电子邮件提交的表单值:
foreach ($_POST as $field=>$value) {
if ($field != "submit") $msg .= $field . ": " . $value . "\n";
}
但正如你可能知道,当它到达一组复选框,它表示值是“数组”,因此不仅需要将数组拆分或分解为复选框的多个值,还需要为多组复选框执行此操作。
因此,例如,这可能是味精是一种特定形式是什么$:
first_name: first
last_name: last
email_address: [email protected]
phone: 1234567890
variable_radio_name: answer
variable_selectbox_name: answer
colors_from_checkbox_group_one: red,blue
sizes_from_checkbox_group_two: med,lrg
variable_textarea_name: blah blah blah
文本框,文本域,收音机,下拉框都容易,因为它是一个答案了一块,但这些复选框是疼痛。
编辑
这样做是这样的:
if ($field != "submit") $msg .= $field . ": " . is_array($value) ? implode(',', $value) . "\n" ? $value . "\n";
像这样:
if ($field != "submit") {
$msg .= $field . ": " . is_array($value) ? implode(',', $value) . "\n" ? $value . "\n";
}
语法错误两种方式。
见编辑的问题。 – leoarce