0

我是 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会话以变量中的值开始,gendersql查询使用会话变量执行

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

并且值在txtHintdiv 中回显。我的问题是当我第一次单击单选按钮时,该函数被调用,但该值未在页面中回显。当我重新加载页面并再次尝试时,它工作正常。请帮助解决这个问题

谢谢

4

1 回答 1

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();
}
};
于 2013-04-22T06:55:48.690 回答