这是前台写的js脚本
       function guanzhu() {
            var hotelid = "<%=HotelID %>";
            var loginid = "<%=Loginid %>";
            
            if (loginid == null || loginid == "") {
                alert("请先登录")
            }
            else {
                var aa = "<%= addatt2()%>";
                 }
            if (aa == 1) {
                document.getElementById("guanzhuid").innerHTML = "已关注"            } else if (aa == 2) {
            alert("您已关注过此酒店");
           
            }
        }
这是调用后台的方法        public static string addatt2()
        {
            string rt="";
            int userid = 0; 
            DataTable dt = userbll.GetList("LoginId='" + Loginid+"'").Tables[0];
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                userid = Convert.ToInt32( dt.Rows[i]["user_Id"]);
            }
            DataTable selectAtt = attbll.GetList("AttentionHotelId='" + hotelID + "' and AttentionUserId='" + userid + "'").Tables[0];
            if (selectAtt.Rows.Count > 0)
            {
                rt = "2";
            }
            else
            {
                if (userid != 0)//我在这加了一个判断
                {
                    attmodel.AttentionHotelId = hotelID;
                    attmodel.AttentionUserId = userid;
                    attbll.Add(attmodel);
                    rt = "1";
                }
            }            return rt;        }不知道为什么,这是一个a标签的onclick事件,可是没有点击a标签 onclick在页面加载的时候就执行。。加的判断是在没有登录的时候有效。登陆之后点进去一个页面,就自动关注了。。脚本关注

解决方案 »

  1.   

    没点a标签就执行方法的情况基本不会出现吧。。
           function guanzhu() {
                var hotelid = "<%=HotelID %>";
                var loginid = "<%=Loginid %>";
                
                if (loginid == null || loginid == "") {
                    alert("请先登录")
                }else {
                    var aa = "<%= addatt2()%>";
                    if (aa == 1) {
                        document.getElementById("guanzhuid").innerHTML = "已关注"
                    } else if (aa == 2) {
                        alert("您已关注过此酒店");
                    }
                }
                
            }这样是不是更合理一点?还有你后台的方法,在查询数据库之前就判断userid吧,为0就直接返回,不为0再去查询数据吧。好像你这代码进页面就会直接调用后台的addatt2啊。。所以给你的感觉是直接关注了。。你把JS跟后台数据混写,结果就是每次加载页面的时候都会先执行你后台的addatt2方法,然后才会生成那段JS,最后在你点击a标签的时候,才会执行这样的JS函数,然后是改变DOM。我想要想实现你要的效果是要AJAX来实现的。
      

  2.   

    我是新手。。对Ajax不太了解。。
      

  3.   

    百度一下,用个库吧。照着例子做,主要就是请求地址URL,参数,回调函数。