为什么我不能将此数组提交给 PHP?

Why I cant submit this array to PHP?

我有一个 table,其中包含数据和复选框。当我单击复选框时,我会获取每个选定项目的 ID,当提交时,我会在 PHP 中收到,但现在我改变了我的方法。现在,我想将整个数组提交给 PHP 但是我没有收到它:

 <?php foreach ($arr_cases as $cases) : ?>
   <tr>                           
     <td>           
       <input type="checkbox" name="devices" value="<?php $dataa = serialize($cases); $encodedd = htmlentities($dataa); echo $encodedd; ?>">
     </td>
   </tr>
 <?php endforeach; ?>

按照我上面的做法,我只能在 PHP 中接收一个数组,因此,尝试将复选框从 devices 命名为 devices[] 但这次打印空白(什么都没有)。

当然,我在 PHP 中反序列化了它。 我做错了什么?

您需要为复选框使用数组样式的名称,以便在数组中接收所有复选框。

<input type="checkbox" name="devices[]" value="<?php $dataa = serialize($cases); $encodedd = htmlentities($dataa); echo $encodedd; ?>">

然后$_POST['devices']将是所有选中值的数组。该数组的每个元素都将被序列化,您必须将其反序列化。

if (!empty($_POST['devices'])) {
    $devices = array_map('unserialize', $_POST['devices']);
} else {
    $devices = [];
}
var_dump($devices);