在页面重新加载时保存javascript复选框状态?

时间:2013-02-27 08:37:25

标签: php javascript html mysql css

我这里有这段代码:

<head>
    <script language="javascript">
        var showMode = 'table-cell';
        if (document.all) showMode='block';

        function toggleVis(btn){
            btn   = document.forms['tcol'].elements[btn];
            cells = document.getElementsByName('t'+btn.name);
            mode = btn.checked ? showMode : 'none';
            for(j = 0; j < cells.length; j++) cells[j].style.display = mode;
        }
    </script>

</head>
<body>
   <h1>Andmete kustutamine</h1>
   <hr>
   <div id="mainbox">
        <form name="tcol" onsubmit="return false">
            <p id="rand">Kuvatavad tulbad:</p>

            <table class="tabl">
                <tr>
                    <td id="nobord"><input type=checkbox name="col1" onclick="toggleVis(this.name)" checked> Osakond</td>
                    <td id="nobord"><input type=checkbox name="col2" onclick="toggleVis(this.name)" checked> Soetusaasta</td>
                    <td id="nobord"><input type=checkbox name="col3" onclick="toggleVis(this.name)" checked> IT Number</td>
                    <td id="nobord"><input type=checkbox name="col4" onclick="toggleVis(this.name)" checked> Tooterühm</td>
                </tr>
                <tr>
                    <td id="nobord"><input type=checkbox name="col5" onclick="toggleVis(this.name)" checked> Mudeli nimetus</td>
                    <td id="nobord"><input type=checkbox name="col6" onclick="toggleVis(this.name)" checked> SN</td>
                    <td id="nobord"><input type=checkbox name="col7" onclick="toggleVis(this.name)" checked> Riigivara nr</td>
                    <td id="nobord"><input type=checkbox name="col8" onclick="toggleVis(this.name)" checked> Inventaari nr</td>
                </tr>
                <td id="nobord"><input type=checkbox name="col9" onclick="toggleVis(this.name)" checked> Maja</td>
                <td id="nobord"><input type=checkbox name="col10" onclick="toggleVis(this.name)" checked> Ruum</td>
                <td id="nobord"><input type=checkbox name="col11" onclick="toggleVis(this.name)" checked> Vastutaja</td>
                <td id="nobord"><input type=checkbox name="col12" onclick="toggleVis(this.name)" checked> Märkus</td>
                <tr>
                    <td id="nobord"><input type=checkbox name="col13" onclick="toggleVis(this.name)" checked> ID</td>
                    <td id="nobord"><input type=checkbox name="col14" onclick="toggleVis(this.name)" checked> Kasutajanimi</td>
                </tr>
            </table>
        </form>

当切换某个复选框时,它应该隐藏列。我的问题是每当我重新加载页面时......框中的勾号消失,并且柱子再次出现。 有没有办法禁用它? 提前谢谢!

2 个答案:

答案 0 :(得分:4)

刷新页面时无法保留本地javascript值,因此您要么必须将值保存在HTML5本地存储中,要么创建cookie并将值存储在那里。

答案 1 :(得分:0)

您可以使用javascript将其存储在cookie中,或者使用php,您可以将其存储在$ _SESSION值中并在列上插入条件。
例如:

<?php if(!isset($_SESSION['display_column'])){ ?>insert html <?php } ?>

如果你需要隐藏多个colums,你可以使用一个数组(你可以将它存储在一个会话中)