ajax php按钮点击计数器的计数数量不显示

时间:2014-05-06 16:50:05

标签: javascript php ajax

这是我的代码:

1 / index.html中

<html>
<head>
    <title>Example</title>
</head>
<body>
    <script type="text/javascript">

function getXMLHttp()
{
  var xmlHttp
  try
  {
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    try
    {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)
      {
        alert("AJAX not supported.")
        return false;
      }
    }
  }
  return xmlHttp;
}

function MakeRequest()
{
  var xmlHttp = getXMLHttp();
  xmlHttp.onreadystatechange = function()
  {
    if(xmlHttp.readyState == 4)
    {
      HandleResponse(xmlHttp.responseText);
    }
  }
  xmlHttp.open("GET", "count.php", true); 
  xmlHttp.send(null);
}

 function HandleResponse(response)
{
  document.getElementById('ResponseDiv').innerHTML = response;
}
    </script>
    <input type='button' onclick='MakeRequest();' value='Button'/>
    <br />
    <br />
    <div id='ResponseDiv'>
        Count
    </div>
</body>

count.php:

<?php

$fp = false;
// Open file for reading, then writing
while ( ($fp=fopen('clicks.txt','r+'))===false ) {
    usleep(250000); // Delay 1/4 second
}
// Obtain lock
while ( !flock($fp, LOCK_EX) ) {    
    usleep(250000); // Delay 1/4 second
}
// Read Clicks
$clicks = trim(fread($fp,1024));
// Add click
$clicks++;
// Empty file
ftruncate($fp,0);
// Write clicks
fwrite($fp, $clicks);
// Release Lock
flock($fp, LOCK_UN);
// Release handle
fclose($fp);

?>

以下是它的功能:我点击按钮,AJAX函数调用php,增加点击次数,然后将其保存在txt文件中。 HandleResponse函数应该让我向用户显示计数数量。

我检查了txt文件并跟踪了点击次数。但它从未在ResponseDiv中显示出来。我的意思是,当显示点击次数时,不会显示任何内容。 这里有什么问题 ?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我刚刚添加:{if(xmlHttp.readyState == 4){HandleResponse(xmlHttp.responseText); } else {HandleResponse(xmlHttp.responseText); }