【发布时间】:2023-03-31 00:58:02
【问题描述】:
我正在尝试合并表单结果。因此,如果选中了一个复选框,我想将复选框的 ID 与选择框的值一起保存在同一行中。我通过遍历复选框 $_POST 数组并使用索引找到选择框 $_POST 数组的正确结果来做到这一点。
问题是,如果我例如选中第二个复选框而第一个不选中,则复选框数组的索引为“0”(1 项),而选择框数组的索引为“1”(2 项) .结果我得到了第一个选择框,这是错误的:
$_POST['selectbox'][0]
如何获得正确的索引?
HTML:
<form method="post">
<ul>
<li>
<input type="checkbox" name="checkbox[]" value="10">
<select name="selectbox[]">
<option value="value_1">Value 1</option>
<option value="value_2">Value 2</option>
</select>
</li>
<li>
<input type="checkbox" name="checkbox[]" value="11">
<select name="selectbox[]">
<option value="value_1">Value 1</option>
<option value="value_2">Value 2</option>
</select>
</li>
</ul>
</form>
PHP:
<?php
if( ! empty( $_POST['checkbox'] ) ) {
$examples = array();
foreach( $_POST['checkbox'] as $index => $value ) {
$examples[] = array(
'checkbox' => $value,
'selectbox' => $_POST['selectbox'][$index]
);
}
}
?>
【问题讨论】:
-
你不能在括号内添加索引吗? ^^
checkbox[1]据我记得它只是用于分组,您甚至可以添加普通名称。 -
在 html 中添加索引:
checkbox[0]、selectbox[0]等
标签: php arrays forms post checkbox