用ajax调用php文件的数据
用来判断是否弹出登录框,
如果返回的值是156则会弹出登录框,
现在返回的值是156,但是不会弹出登录框<!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=gb2312" />
    <title>弹出提示</title>
    <style>
    {margin:0;padding:0;font-size:12px;}
     html,body {height:100%;width:100%;}
     #content {background:#FFFFFF;padding:30px;height:100%;}
     #content a {font-size:30px;color:#369;font-weight:700;}
     #alert {border:1px solid #369;width:300px;height:150px;background:#e2ecf5;z-index:1000;position:absolute;display:none;}
     #alert h4 {height:20px;background:#369;color:#fff;padding:5px 0 0 5px;}
     #alert h4 span {float:left;}
     #alert h4 span#close {margin-left:210px;font-weight:500;cursor:pointer;}
     #alert p {padding:12px 0 0 30px;}
     #alert p input {width:120px;margin-left:20px;}
     #alert p input.myinp {border:1px solid #ccc;height:16px;}
     #alert p input.sub {width:60px;margin-left:30px;}
     </style><script type="text/javascript">function loadXMLDoc(url,cfunc){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=cfunc(xmlhttp);
xmlhttp.open("GET",url,true);
xmlhttp.send();
}function myFunctions()
{
loadXMLDoc("test1.php",function(xmlhttp){return function(){
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("mysDiv").innerHTML=xmlhttp.responseText;
    }
  }}});
}
setInterval(myFunctions(),1000);
</script>
 </head>
<body>
    <form  method="post" action="pinglun.php" id="hello"  onsubmit="return submitTest();" >
    <input id="sendBtn" type="submit" value="发表" title="快捷键 Ctrl+Enter" />    </form>
 <div id="alert">
 <form action="1.php" method="post">
 <h4><span>现在注册</span><span id="close">关闭</span></h4>
  <p><label> 用户名</label><input type="text" name="use"  class="myinp" onmouseover="this.style.border='1px solid #f60'" onfoucs="this.style.border='1px solid #f60'" onblur="this.style.border='1px solid #ccc'" /></p>
  <p><label> 密 码</label><input type="password" name="password" class="myinp" onmouseover="this.style.border='1px solid #f60'" onfoucs="this.style.border='1px solid #f60'" onblur="this.style.border='1px solid #ccc'" /></p>
  <p><input type="submit" value="注册" class="sub" /><input type="reset" value="重置" class="sub" /></p>
  </form>
  </div>
<div id="mysDiv"></div><script type="text/javascript">
     var myAlert = document.getElementById("alert");
     var reg = document.getElementById("sendBtn");
     var mClose = document.getElementById("close");
      var n=document.getElementById("mysDiv").innerText;
      document.write(n);        if(n==156)
     {        reg.onclick = function(){
      myAlert.style.display = "block";
      myAlert.style.position = "absolute";
          myAlert.style.top = "50%";
          myAlert.style.left = "50%";
          myAlert.style.marginTop = "-75px";
          myAlert.style.marginLeft = "-150px";           mybg = document.createElement("div");
          mybg.setAttribute("id", "mybg");
          mybg.style.background = "#000";
          mybg.style.width = "100%";
          mybg.style.height = "100%";
          mybg.style.position = "absolute";
          mybg.style.top = "0";
          mybg.style.left = "0";
          mybg.style.zIndex = "500";
          mybg.style.opacity = "0.3";
          mybg.style.filter = "Alpha(opacity=30)";
          document.body.appendChild(mybg);
          document.body.style.overflow = "hidden";        }
              function submitTest() {             return false;
          }       }
      else
      {       return false;        }       mClose.onclick = function() {
          myAlert.style.display = "none";
          mybg.style.display = "none";
      }</script>
</body></html>

解决方案 »

  1.   

    看一下ajax返回值是不是正常的?
    为什么不用jquery呢,一两句话就解决了,用起来还清晰明了。
      

  2.   

    不用ajax传值,如果mysDiv是固定值,会弹出登陆框
    所以说js效果应该不会有问题,
      

  3.   

    xmlhttp.onreadystatechange=cfunc(xmlhttp);
    应写作
    xmlhttp.onreadystatechange=cfunc;另外也没看到弹出对话框的代码
      

  4.   

    document.getElementById("mysDiv").innerHTML=xmlhttp.responseText;
    这个能执行到吗?
      

  5.   

    写作 xmlhttp.onreadystatechange=cfunc;
    ajax就不能传值了
      

  6.   

    132行的 return false;
    怎么在函数外面?
      

  7.   

    LZ 页面加载的时候 JS 和 HTML是会经过编译生成的  你用ajax"局部"刷新了div的内容,整个页面是没有重新加载的,也就是说你下面的js代码是没有被执行。
    你可以看下div有没onchange之类的函数 用事件触发js代码 显示你的内容。
    还有一种解决方案,你可以先写好div的内容  在ajax回调函数中做一个判断 满足条件 显示div即可 div.style.display='block' 这样JS不用去动态生成 线程也没那么复杂 代码也没那么多