在asp页面 根据session取值是否为空 进行两个div交互显示,例如:session取值不为空则div1显示,div2隐藏,session取值为空div1隐藏,div2显示?可以的话用javascript怎样实现,鄙人是初学者,可能这个问起有些幼稚,还希望高人指点!

解决方案 »

  1.   

    实现效果是在网站页面有个登录窗口,判断如果用户没有登录,则登录框显示,如果用户登录过了则登录框隐藏,显示欢迎标语,登录信息房子session里边,就是怎样实现根据session的非空判断,进行两个层的交换显示
      

  2.   

    session的信息是在要在哪写入的?
    是在其它页面写入的还是在登录后写入?
      

  3.   

    为啥非要用js呢 asp直接取session不就行了吗 取了之后判断 不同情况显示你的div 不显示就隐藏display:none
      

  4.   

    谢谢您的关注!     登录后把 用户名放在了session里边 这个没有问起, 就是在页面根据session判断 , 如果session非空则想显示div2 欢迎,,,登录, 如果session为空说明用户没有登录则显示div2 登录框
      

  5.   

    <div id="div1" runat="server" visible="false></div>
    <div id="div2" runat="server" visible="true"></div>if(Session["username"]==null)
    {
       div1.visible=true;
       div2.visible=false;
    }
    else
    {
       div1.visible=true;   
       div2.visible=false;
    }
      

  6.   


    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script language="javascript">
    function checklogin(ses)
    {
    var login=document.getElementById("divlogin")
    var welcome=document.getElementById("divwelcome")
    if (ses==undefined )//undefined表示不存在值
    {
    alert("请先登录!")
    login.style.display=""; //隐藏
    welcome.style.display="none"; //显示
    }
    else
    {
    login.style.display="none"; //隐藏
    welcome.style.display=""; //显示
    }
    }
    </script>
    </head>
    <body>
    <div id="divlogin">
    用户:<input type="text" id="txtUser"  style="width:200px;" /><br />
        密码:<input type="password" id="txtPwd"  style="width:200px;" /><br />
        <input type="button" name="btn" value="登录"  onclick="checklogin(<%=session("user")%>)"/>
        </div>
        <div id="divwelcome" style="display:none">
         欢迎<%=session("user")%>!
        </div>
    </body>
    </html>
    以上代码在拷贝在asp中,IIS运行通过。
    用其它值替换:session("user"),可测试效果!
      

  7.   

    ——+
    ses是函数中的参数...你把它看做自定义变量去理解吧
    理解不了 就看下面的代码(我把ses替换了):<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <%session("user")="Jack"%>
    <!--更改session("user")等号右边的值 可测试效果-->
    <script language="javascript">
    function checklogin()
    {
    var login=document.getElementById("divlogin"); //获取登录div
    var welcome=document.getElementById("divwelcome"); //获取欢迎div
    if ("<%=session("user")%>"==undefined || "<%=session("user")%>"=="")//undefined表示不存在值
    {
    alert("请先登录!");
    login.style.display=""; //隐藏
    welcome.style.display="none"; //显示
    }
    else
    {
    login.style.display="none"; //隐藏
    welcome.style.display=""; //显示
    }
    }
    </script>
    </head>
    <body>
    <div id="divlogin">
    用户:<input type="text" id="txtUser"  style="width:200px;" /><br />
        密码:<input type="password" id="txtPwd"  style="width:200px;" /><br />
        <input type="button" name="btn" value="登录"  onclick="checklogin()"/>
        </div>
        <div id="divwelcome" style="display:none">
         欢迎<%=session("user")%>!
        </div>
    </body>
    </html>
      

  8.   

    我这个是用7#的代码结合我的改的还是有问起 各位看看那有问起!
    <script language="javascript">
          var name=session("username");

        function checklogin(name)
        {
            var login=document.getElementById("divlogin")
            var welcome=document.getElementById("divwelcome")
            if (name==undefined )//undefined表示不存在值
            {
                alert("请先登录!")
                login.style.display="";    //隐藏
                welcome.style.display="none";    //显示
            }
            else
            {
                login.style.display="none";    //隐藏
                welcome.style.display="";    //显示
            }
        }
    </script>
    下边是转换的两个层
    <div id="divwelcome" style="display:none">
    尊敬的<%=session("username")%>用户,您好,欢迎您登陆!
    </div><div id="divlogin">
        用户:<input type="text" id="txtUser"  style="width:200px;" /><br />
        密码:<input type="password" id="txtPwd"  style="width:200px;" /><br />
        <input type="button" name="btn" value="登录"  onSubmit="提交到checklogin.asp页面,把登录的用户名放在session里边session("username")"/>
        </div>
      

  9.   

    注意把ses替换后<%=session("user")%> 两边的 双引号 不可少!少了的话,浏览器会把其值作为变量处理,就会出错。if ("<%=session("user")%>"==undefined || "<%=session("user")%>"=="")//undefined表示不存在值
      

  10.   

    我把你的提交事件改了,比如我的用户名为Jack。<input type="button" name="btn" value="登录" onSubmit="location.href='checklogin.asp?userName=Jack'"/>然后再checklogin.asp页面用以下代码获得用户名:<%
    var uName = Request.QueryString("userName")
    %>
      

  11.   

    按你那样我改了,但是当登录以后进这个页面登录框还是不隐藏,欢迎信息不显示,如果把<div id="divwelcome" style="display:none">的取掉的话,俩个层都出现,欢迎信息正常显示。这块的提交我是提交到另外一个页面checklogin.asp,在这个checklogin.asp页面有个连接 连接到首页,session值都正常显示着
    <script language="javascript">

        function checklogin(name)
        {
            var login=document.getElementById("divlogin")
            var welcome=document.getElementById("divwelcome")
            if ("<%=session("username")%>"==undefined || "<%=session("username")%>"=="")//undefined表示不存在值
            {
                alert("请先登录!")
                login.style.display="";    //隐藏
                welcome.style.display="none";    //显示
            }
            else
            {
                login.style.display="none";    //隐藏
                welcome.style.display="";    //显示
            }
        }
    </script><div id="divlogin">
      用户:<input type="text" id="txtUser" style="width:200px;" /><br />
      密码:<input type="password" id="txtPwd" style="width:200px;" /><br />
      <input type="button" name="btn" value="登录" onSubmit="提交到checklogin.asp页面,把登录的用户名放在session里边session("username")"/>
      </div>
      

  12.   

    其实你不用弄得这么复杂,你用户名既然存在session中了,就算你换了页面了session中的值还是会在的,它会一直保持到IE关闭.
      

  13.   

    我那个提交是提交到checklogin.asp 在这个页面把用户名放进了session里边 这个在首页是可以显示出来的,没有问起  现在就是根据session非空进行层 转换着又问起
      

  14.   

    嗯 我知道session中的值是一直存在的 session中的用户明是登录以后放进去的,登录框是我是在首页的 我登录以后就跳转到用户信息页面了 在用户信息页面有个“返回首页” 在返回首页以后我想根据session的非空判断 隐藏首页的登录窗口显示 欢迎用户
      

  15.   


    <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script language="javascript">
    function checklogin()
    {
    var login=document.getElementById("divlogin"); //获取登录div
    var welcome=document.getElementById("divwelcome"); //获取欢迎div
    if ("<%=session("username")%>"==undefined || "<%=session("username")%>"=="")//undefined表示不存在值
    {
    login.style.display=""; //隐藏
    welcome.style.display="none"; //显示
    }
    else
    {
    login.style.display="none"; //隐藏
    welcome.style.display=""; //显示
    }
    }
    function succeedlogin()//检查登录
    {
    var txtUser=document.getElementById("txtUser");
    var txtPwd=document.getElementById("txtPwd");
    if (txtUser =="" || txtPwd=="")
    {
    alert("请输入用户名或密码")
    }
    else
    {
    location.href="checklogin.asp?userName=" & txtUser.value //传递用户名到checklogin.asp
    }
    }
    </script>
    </head>
    <body onload="checklogin()"><!--在加载事件中判断用户是否已登录-->
    <div id="divlogin">
    用户:<input type="text" id="txtUser" value="Jack"  style="width:200px;" /><br />
        密码:<input type="password" id="txtPwd" value="123456"  style="width:200px;" /><br />
        <input type="button" name="btn" value="登录" onClick="succeedlogin()"/><!--在登录按钮事件中检查登录-->
        </div>
        <div id="divwelcome" style="display:none">
         欢迎<%=session("user")%>!
        </div>
    </body>
    </html>
    看看是不是你要的效果!
    在加载事件判断div显示哪一层。
    在登录按钮事件判断并传递值
      

  16.   

    应该在页面加载完成后就执行这个判断
    不知道lz懂不懂jquery
    $(document).ready(function() {
        var isUserInSession = ......; //用DWR或者判断页面上的值是否存在来判断user是否在Session
        if (isUserInSession) {
            ...//显示欢迎的div
        } else {
            ...//显示登陆框
        }
    });
    登录事件另外写个方法,登录完成后可以刷新当前页面,也可以跳到另一个页面再跳回来就可以了
    关键是,页面加载完成后就要判断该显示哪个div
      

  17.   

    感觉lz对js不是太了解,jquery就更别提了。。
      

  18.   

    在checklogin.asp页面我已经判断好了 房子了session里边,在首页session的值也能取到 现在就是怎样根据session值的非空 切换俩个层 谢谢!
      

  19.   

    不会吧,我测试了有效果啊。
    当session(user)有值时,就显示欢迎。
    登录也就隐藏了,也就不需要用到checklogin.asp页面了。当session(user)无值时,就显示登录。
    触发登录按钮事件,在实践中传递登录用户名到checklogin.asp然后您在checklogin.asp中用一下代码保存用户名到session("user")中<%
    session("user")=QueryString("userName")
    %>
      

  20.   

    在checklogin.asp中用以下代码保存用户名到session("user")中<% 
    session("user")=QueryString("userName") 
    %>