如何通过一个复选框获取多个值?
问题描述:
我想从一个复选框获取数组,每个记录有一个[id]和一个[date]。如何通过一个复选框获取多个值?
这里是我的实际HTML/PHP:
<input type="checkbox" name="collection[][id]" value="<?php echo $row['id']; ?>" />
<input type="hidden" name="collection[][date]" value="<?php echo date(Ymd); ?>" />
我得到这个:
Array
(
[0] => Array
(
[id] => 544826
)
[1] => Array
(
[date] => 20170426
)
[2] => Array
(
[id] => 608555
)
[3] => Array
(
[date] => 20170426
)
)
而且我想这样的:
Array
(
[0] => Array
(
[id] => 544826
[date] => 20170426
)
[1] => Array
(
[id] => 608555
[date] => 20170426
)
)
请,我怎么能继续吗?
答
为什么不使用ID作为复选框的索引?这样你只需要通过清单。即:
<input type="checkbox" name="collection[<?php echo $row['id']; ?>]" value="<?php echo date(Ymd); ?>" />
所以这样你就必须在辑佚以下数组(打勾的):
$collection = [
'id1' => 'date1',
'id2' => 'date2',
...
]
简单,更优雅。希望这可以帮助
+0
谢谢,我没有意识到我有可能做到这一点更简单。 – Guillaume
答
从您的评论中,听起来好像你有一些处理数据的JavaScript提交之前。如果是这种情况,您可以将数据属性添加到复选框。要使用您的示例,您可以将其称为data-valuetwo。
INPUT TYPE = “复选框” 值= “TESTUSER” 数据valuetwo = “1”>
然后,你的JavaScript可以使用的getAttribute来检索数据-valuetwo属性的值并适当地处理它。它可能看起来像这样:
var valuetwo = checkbox.getAttribute(“data-valuetwo”);
答
只需复制粘贴此代码,我已测试它,这一定会帮助你实现你想要的。
<form>
<input type="checkbox" name="collection[<?php echo $row["id"]; ?>][id]" value="<?php echo $row["id"]; ?>" />
<input type="hidden" name="collection[<?php echo $row["id"]; ?>][date]" value="<?php echo date(Ymd); ?>" />
<input type="checkbox" name="collection[<?php echo $row["id"]; ?>][id]" value="<?php echo $row["id"]; ?>" />
<input type="hidden" name="collection[<?php echo $row["id"]; ?>][date]" value="<?php echo date(Ymd); ?>" />
<input type="submit">
</form>
<?php
print_r(array_values($_GET["collection"]));
输出:
Array
(
0 => Array
(
[id] => 10
[date] => 20170426
)
1 => Array
(
[id] => 20
[date] => 20170426
)
)
答
你需要为这两个ID和日期same index
即键的同时按这样
<input type="checkbox" name="collection[<?php echo $row["id"]; ?>][id]" value="<?php echo $row["id"]; ?>" />
<input type="hidden" name="collection[<?php echo $row["id"]; ?>][date]" value="<?php echo date(Ymd); ?>" />
值@ user2860957你有多个复选框像这个? –
是的,这是在“while”循环中。 – Guillaume
@Guillaume和你的身份证是独一无二的吗? –