php - 无法针对复选框获取正确的值
问题描述
如图所示,我有一个针对每个复选框的名称和年龄值的表单。
问题是,即使未选中复选框但填充了该复选框的输入值,它也会进入后端。我希望如果未选中该复选框,那么即使输入文本已填充名称和年龄的值也不应转到后端如果选中该复选框,则年龄和姓名的值仅应转到后端
<form method="POST" action="savedata.php">
<tr>
<td>
<input name="checkbox_value[]" type="checkbox" data-id="<?php echo $id; ?>" >
</td>
<td>
<input type="text" name="child_name[]" placeholder="Name" data-id="<?php echo $id; ?>" value="<?php echo $child_name; ?>">
</td>
<td>
<input type="text" id="age" name="child_age[]" class="child-age" placeholder="Age" data-id="<?php echo $id; ?>" value="<?php echo $child_age; ?>">
</td>
</tr>
</form>
在使用 savedata.php 获取数据时
print_r($_POST);
我得到以下数组
Array
(
[checkbox_value] => Array
(
[0] => on
[1] => on
)
[child_name] => Array
(
[0] => child 1
[1] => child 2
[2] => child 3
)
[child_age] => Array
(
[0] => 4
[1] => 6
[2] => 10
)
)
我想要的结果数组是
Array
(
[checkbox_value] => Array
(
[0] => on
[1] => on
)
[child_name] => Array
(
[0] => child 1
[1] => child 2
)
[child_age] => Array
(
[0] => 4
[1] => 6
)
)
如果有人能告诉如何解决这个问题,如果这不可能,那么是否可以检查 checkbox_value 是否有 2 个值,那么我可以从 child_name 和 child_age 数组中选择 2 个值
解决方案
您可以通过测试是否激活复选框来处理答案,如下所示:
if (isset([checkbox_value][0]))
然后,您可以将数据放入具有所需结构的新数组中(即您的第二个示例)
推荐阅读
- vue.js - 如何使用 vue.js 和 window.getSelection()?
- xpath - 使用 XPath Google 表格 importxml 函数从字典中获取单词的含义
- python-3.x - 使用条件打印数据帧的索引
- mongodb - 为什么wekan对mongodb的调用无法连接?
- python - 如何在python中更改文件的所有者
- apache-spark - Structure Streaming 和 Stateful Streaming 中静态数据的周期性刷新
- scala - 为什么scalac在重载'andThen'时会混淆我的SAM类型没有实现Function?
- pyinstaller - 有关使 pyinstaller 编译使用 sympy 的 python 文件的任何更新?
- typescript - EntityMetadataNotFound:找不到“BusinessApplication”的元数据
- php - 切换后PHP变量不可用