2017-04-26 86 views
0

我想从一个复选框获取数组,每个记录有一个[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 
     ) 
) 

请,我怎么能继续吗?

+0

值@ user2860957你有多个复选框像这个? –

+0

是的,这是在“while”循环中。 – Guillaume

+0

@Guillaume和你的身份证是独一无二的吗? –

回答

1

为什么不使用ID作为复选框的索引?这样你只需要通过清单。即:

<input type="checkbox" name="collection[<?php echo $row['id']; ?>]" value="<?php echo date(Ymd); ?>" /> 

所以这样你就必须在辑佚以下数组(打勾的):

$collection = [ 
'id1' => 'date1', 
'id2' => 'date2', 
... 
] 

简单,更优雅。希望这可以帮助

+0

谢谢,我没有意识到我有可能做到这一点更简单。 – Guillaume

0

从您的评论中,听起来好像你有一些处理数据的JavaScript提交之前。如果是这种情况,您可以将数据属性添加到复选框。要使用您的示例,您可以将其称为data-valuetwo。

INPUT TYPE = “复选框” 值= “TESTUSER” 数据valuetwo = “1”>

然后,你的JavaScript可以使用的getAttribute来检索数据-valuetwo属性的值并适当地处理它。它可能看起来像这样:

var valuetwo = checkbox.getAttribute(“data-valuetwo”);

1

只需复制粘贴此代码,我已测试它,这一定会帮助你实现你想要的。

<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 
      ) 

    ) 
2

你需要为这两个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); ?>" /> 
相关问题