如何取消每行$ _SESSION?

时间:2014-12-05 08:28:54

标签: php session

我有一个表格,用于显示每行的SESSION数据:

enter image description here

以下是显示SESSION的代码:

$keys = array_keys($_SESSION['name']);
        $no=1;
        for($k=0; $k < count($keys); $k++) {
        $key = $keys[$k];
        $value = $array[$key];
        echo "<tr align='center'>
        <td>$no.</td>
        <td width='20%'>
            <input type='checkbox' name='cek[]' class='check1' value='".$_SESSION['jml_harga'][$key]."' style='display:none;'>
            <input type='text' class='txtField' name='".$_SESSION['name'][$key]."' value='".$_SESSION['name'][$key]."' readonly='true'>
        </td>
        <td width='16%'>
            <input type='text' class='txtField' name='".$_SESSION['jenis'][$key]."' value='".$_SESSION['jenis'][$key]."' readonly='true'>
        </td>
        <td>
            <input type='text' class='txtField' name='".$_SESSION['merk'][$key]."' value='".$_SESSION['merk'][$key]."' readonly='true'>
        </td>
        <td>
            <input type='text' class='txtField' name='".$_SESSION['katalog'][$key]."' value='".$_SESSION['katalog'][$key]."' readonly='true'>
        </td>
        <td width='7%'>
            <input type='text' class='txtField' name='".$_SESSION['jml_kebutuhan'][$key]."' value='".$_SESSION['jml_kebutuhan'][$key]."' style='text-align:center;' readonly='true'>
        </td>
        <td>
            <input type='text' class='txtField' name='".$_SESSION['hps'][$key]."' value='".$_SESSION['hps'][$key]."' style='text-align:right;' readonly='true'>
        </td>
        <td>
            <input type='text' class='txtField' id='hargas' name='".$_SESSION['jml_harga'][$key]."' value='".number_format($_SESSION['jml_harga'][$key],0,',','.')."' style='text-align:right;' readonly='true'>
        </td>
        </tr>";
        $no++;}

我想做一个选项来取消每行的SESSION,如下所示:

enter image description here

因此,如果我点击第一行中的“删除”, 只有第一行未设置,而第二行没有。

但是如果我使用这段代码,我不知道如何在每行中取消它:

    unset($_SESSION['name']);
    unset($_SESSION['jenis']);
    unset($_SESSION['merk']);
    unset($_SESSION['katalog']);
    unset($_SESSION['kemasan']);
    unset($_SESSION['satuan']);
    unset($_SESSION['satuanbsr']);
    unset($_SESSION['kebutuhan']);
    unset($_SESSION['jml_kebutuhan']);
    unset($_SESSION['hps']);
    unset($_SESSION['jml_harga']);

它将取消所有行中的SESSION。所以,我希望有人可以帮我解决这个问题,谢谢。

3 个答案:

答案 0 :(得分:2)

删除session_destroy();行,因为它会删除整个会话。 要删除部分内容,只需unset,就像您一样。

答案 1 :(得分:1)

将密钥传递给删除链接

喜欢

<a href="delete.php?key=<?php echo $key;?>">Delete</a>

现在访问delete.php中的密钥并删除该特定密钥的会话

也会移除session_destroy,因为它会删除所有会话

$key = $_GET['key'];

    unset($_SESSION['name'][$key]);
    unset($_SESSION['jenis'][$key]);
    unset($_SESSION['merk'][$key]);
    unset($_SESSION['katalog'][$key]);
    unset($_SESSION['kemasan'][$key]);
    unset($_SESSION['satuan'][$key]);
    unset($_SESSION['satuanbsr'][$key]);
    unset($_SESSION['kebutuhan'][$key]);
    unset($_SESSION['jml_kebutuhan'][$key]);
    unset($_SESSION['hps'][$key]);
    unset($_SESSION['jml_harga'][$key]);

答案 2 :(得分:1)

使用$key创建链接。

<a href="yourpage.php?key=<?php echo $key;?>">Delete</a>

然后在那个页面上

if (!empty($_GET['key'])){
    unset($_SESSION['name'][$_GET['key']]);
    unset($_SESSION['jenis'][$_GET['key']]);
    unset($_SESSION['merk'][$_GET['key']]);
    unset($_SESSION['katalog'][$_GET['key']]);
    unset($_SESSION['kemasan'][$_GET['key']]);
    unset($_SESSION['satuan'][$_GET['key']]);
    unset($_SESSION['satuanbsr'][$_GET['key']]);
    unset($_SESSION['kebutuhan'][$_GET['key']]);
    unset($_SESSION['jml_kebutuhan'][$_GET['key']]);
    unset($_SESSION['hps'][$_GET['key']]);
    unset($_SESSION['jml_harga'][$_GET['key']]);
}