XMLHttpRequest在启动会话时延迟

时间:2013-04-22 06:53:57

标签: php ajax xmlhttprequest innerhtml

我是ajax的初学者。当我使用ajax进行搜索功能时,它会延迟启动操作

<script>
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
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=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","getuser.php?gender="+str,true);
xmlhttp.send();
}
</script>

点击product.php页面上的单选按钮时,会调用showUser(str)。该值在gender中的变量getuser.php中访问,会话以varible gender中的值开头,并且使用会话变量执行sql查询

$sql="SELECT * FROM tbl_product WHERE gender = '".$_SESSION['gender']."'";

并且txtHint div中的值为echoe。我的问题是,当我第一次点击无线电按钮时,调用该功能,但该值未在页面中回显。当我重新加载页面并再次尝试时,它工作正常。请帮助解决此问题

三江源

1 个答案:

答案 0 :(得分:0)

将您的代码放入

window.onload

功能。喜欢这个

window.onload = function() {
      function showUser(str)
{
    if (str=="")
      {
      document.getElementById("txtHint").innerHTML="";
      return;
      }
    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=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","getuser.php?gender="+str,true);
    xmlhttp.send();
}
};