首页 > 解决方案 > 如何在php中将新元素附加到会话的末尾?

问题描述

我有一个会话,我在其中存储一些 ID,我想在该会话的末尾添加一个字符串(附加到它自己的相应 ID)。

在这里,我有一个包含一些元素的表格,并且那里有一些复选框,因此当每个复选框被选中时,我将获取他们的 ID,并且在发布时我将这些 ID 存储到会话中:

    <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"] ?>">
                    <?php echo '<a href=error_report.php?device_id=' . urlencode($device["id"])  . "&dev_name=" . urlencode($device["name"]) . "&imei=" . urlencode($device["serial_imei"]) . "&serial_no=" . urlencode($device["serial_no"]) . "&device_no=" . urlencode($device["device_no"]) .  '>' . $device["name"] . '</a>'; ?>
                </td>

                <td>
                    <?php echo '<a href=error_report.php?device_id=' . urlencode($device["id"]) .  "&dev_name=" . urlencode($device["name"]) . "&imei=" . urlencode($device["serial_imei"]) . "&serial_no=" . urlencode($device["serial_no"]) . "&device_no=" . urlencode($device["device_no"]) .  '>' . $device["device_no"] . '</a>'; ?>
                </td>

                <td>
                    <?php echo '<a href=error_report.php?device_id=' . urlencode($device["id"]) .  "&dev_name=" . urlencode($device["name"]) . "&imei=" . urlencode($device["serial_imei"]) . "&serial_no=" . urlencode($device["serial_no"]) . "&device_no=" . urlencode($device["device_no"]) . '>' . $device["barcode"] . '</a>'; ?>
                </td>

<td>
                        <div class="input-group">
                            <textarea name="dev_comment" placeholder="Write your comment here" 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>

这是我存储这些 ID 的方式:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $_SESSION['devices_id'] = $_POST['devices'];
}

我想做的是添加$dev_comment到该会话。因此,当我使用该会话时,我需要将 $dev_comments 附加到每个相应的 ID。我该如何实施?

标签: phphtmlsessioncheckbox

解决方案


首先,确保 $_SESSION['devices_id'] 存在并且是一个数组:

if(!isset($_SESSION['devices_id'])) {
    $_SESSION['devices_id'] = [];
}

其中,$_POST['devices'] 是一个数组,可以轻松合并:

$_SESSION['devices_id'] = array_merge($_SESSION['devices_id'], $_POST['devices']);

推荐阅读