【发布时间】:2015-11-02 22:42:54
【问题描述】:
四处寻找,但找不到解决方案。每个人都这样谈论一个群体:
<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']。
我有这个 sn-p,它可以抓取所有未知名称并构建一条消息,以便稍后插入到电子邮件脚本中,以通过电子邮件发送提交表单的值:
foreach ($_POST as $field=>$value) {
if ($field != "submit") $msg .= $field . ": " . $value . "\n";
}
但您可能知道,当它到达一组复选框时,它表示值是“数组”,因此它不仅需要将数组拆分或内爆为复选框的多个值,然后还需要这样做用于多组复选框。
例如,这可能是 $msg 在特定表单上的内容:
first_name: first
last_name: last
email_address: email@email.com
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";
}
双向语法错误。
【问题讨论】:
-
查看已编辑的问题。