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の値でセッションが開始genderされ、セッション変数を使用してSQLクエリが実行されます

$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 に答える