如何在PHP中配对这两个数组的值?

我有一个表格,上面有一些项目,每行都有一个复选框和一个文本区域。当我预先提交时,我想只为相应的选中复选框获取文本区域的值,而不是为未选中的文本区域取值,即使它们具有某些内容的文本区域也是如此。


                <form method="post">

                <?php if (!empty($arr_devices)) { ?>

                    <?php foreach ($arr_devices as $device) : ?>

                        <tr>

                            <td>

                                <input type="checkbox" name="devices[]" value="<?php echo $device["id"].$dev_comment ?>">

                            <td>

                           <td>  

<div class="input-group">

                                    <textarea name="dev_comment[]" placeholder="comment" rows="1" cols="50"><?php echo $dev_comment; ?></textarea>

                                </div>

                            </td>


                        </tr>

                    <?php endforeach; ?>

                <?php } ?>

                <input class="btn" type="submit" name="submit" value="Report">

                <form>

登顶后的打印阵列:


  Device_id([0] => 790 [1] => 1140 [2] => 1142 ) 

  Comments( [0] => sdf [1] => sdfsdfs [2] => [3] => fsdfsd [4] => )

就像现在一样,当我提交时,我只能收到选中的device_id,而是评论的所有值(甚至是空值)。为什么会发生这种情况以及如何解决它?


千万里不及你
浏览 108回答 1
1回答

眼眸繁星

仅提交选中的复选框。您可以通过向复选框和文本区域值的名称数组添加相同的键来保持其配对。设备 ID 可能适用于此目的。<td>&nbsp; &nbsp; <input type="checkbox" name="devices[<?php echo $device["id"] ?>]" value="<?php echo $device["id"].$dev_comment ?>"><td>&nbsp; &nbsp; <div class="input-group">&nbsp; &nbsp; &nbsp; &nbsp; <textarea name="dev_comment[<?php echo $device["id"] ?>]" placeholder="comment" rows="1" cols="50"><?php echo $dev_comment; ?></textarea>&nbsp; &nbsp; </div></td>如果设备 ID 不唯一,则只能使用 foreach 循环中的索引。然后,在表单处理程序代码中,您可以使用复选框中的共享ID来访问注释:foreach ($_POST['devices'] as $id => $value) {&nbsp; &nbsp; // do something with $_POST['dev_comment'][$id]}
打开App,查看更多内容
随时随地看视频慕课网APP