1
這裏是我的代碼:數AJAX PHP的計數的按鈕,點擊計數器不顯示
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中顯示。我的意思是,應該顯示點擊次數時不會顯示任何內容。 這裏有什麼問題?
'if(xmlHttp.readyState == 4){HandleResponse(xmlHttp.responseText); } else {alert(xmlHttp.readyState); }做這個改變,這個警報是怎麼說的? –
你永遠不會在腳本底部回顯'$ clicks',只需添加'echo $ clicks;'。 – cmorrissey
最好組織這樣的問題: * 1 *:問題描述。 * 2 *:對代碼示例的解釋。 * 3 *:您的最後一段 – rpax