【问题标题】:Find right index of checkbox查找复选框的正确索引
【发布时间】: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


【解决方案1】:

我认为将我的答案放在实际答案中可能会引起正确的注意:

只需给你的 html 元素起个名字:

... name="checkbox[index_or_name]" >

第一部分将用于分组,括号之间的标识符只是..一个标识符。否则它们只是叠加起来,加上了解您在 php 代码中引用哪个元素的好习惯。

【讨论】:

  • 是的,一旦我不得不处理它,这对我来说是一个相当大的搜索。最终它在一个大型搜索表单中不再有用。因为我可以很容易地划分我的复选框组 xD PHP 的方便功能
猜你喜欢
  • 2016-12-13
  • 1970-01-01
  • 2016-10-31
  • 2013-02-16
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多