Javascript,使用switch语句的会话变量

时间:2015-01-28 09:39:59

标签: javascript php html

我不知道该怎么做但是我想使用来自javascript switch语句中的会话变量的给定值,以使隐藏的div在值与案例匹配时可见。到目前为止,我得到了这个。

隐藏的div位于另一个div内的列表中。位于第1页。

 <html>

 <div id="sidebar-wrapper">
        <ul class="sidebar-nav">
            <li class="sidebar-brand">a href="#">home</a></li>
            <li><div style="display:none;" id="div1"> <a href="#">page 1</a></div></li>
            <li><div style="display:none;" id="div2"> <a href="#">page 2</a></div></li>
            <li><div style="display:none;" id="div3"> <a href="#">page 3</a></div></li>
        </ul>
     </div>

从会话中检索值。位于第1页。

<input type="hidden" id="ID" value="<?php echo $_SESSION['ID'];?>" />
</html>

javascript,位于第2页。     

var sessionID =  document.getElementById("ID").value;

$(document).ready(function() {
switch(sessionID) {
    case 2002:
        $("#div1").show();
        break;
    case 2003:
        $("#div2").show();
        break;
    case 2004:
        $("#div3").show();
        break;
}
});
</script>

我遇到的问题是它不起作用,我不知道为什么。任何帮助都很受欢迎。

我的第2页设置如下。

<?php include "header.php";?>

<div id="content">
Some random text
</div>
<script>The script goes in here</script>

<?php include "footer.php";?>

编辑了一些更清晰。因为事情仍未按预期运作。

3 个答案:

答案 0 :(得分:2)

与字符串大小写匹配

case '2002':
    $("#div1").show();
    break;
case '2003':
    $("#div2").show();
    break;
case '2004':
    $("#div3").show();
    break;

<强> DEMO

答案 1 :(得分:1)

sessionIDString,但case子句包含整数。所以将sessionId转换为Number。一元运算符+将帮助我们将其转换为数字,认为还有其他方法。

switch(+sessionID) {
   case 2002:
      $("#div1").show();
      break;
   case 2003:
      $("#div2").show();
      break;
   case 2004:
      $("#div3").show();
      break;
}

其他方式为switch(Number(sessionId))switch(parseInt(sessionId,10)),并将case子句转换为字符串,如case '2002'

答案 2 :(得分:1)

使用parseInt函数将字符串转换为整数

var sessionID =  parseInt(document.getElementById("ID").value);