2017-04-26 82 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); ?>" /> 
相關問題