Ajax計數器(PHP)

來源:互聯網
上載者:User
ajax|計數器

這幾天剛接觸Ajax,寫了一個非常簡單的計數器。
用戶端檔案counter.htm用作模板,counter.php調用counter.htm模板。
當訪問counter.php時,資料庫記錄ip、time,計數器加一。
XMLHttpRequest向counter_action.php發出請求,counter_action.php返回一個數字。
函數setTimeout()設定自動更新時間。

counter.htm清單

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Ajax計數器</title>
<style type="text/css">...
<!--
.style2 {...}{
    font-size: 16px;
    color: red;
}
-->
</style>
<script type="text/javascript">...
var xmlHttp;
function createXMLHttpRequest()
...{
    if (window.ActiveXObject)
    ...{
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest)
    ...{
        xmlHttp = new XMLHttpRequest();
    }
}

function doCount()
...{
    createXMLHttpRequest();   
    var url = "counter_action.php";
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function handleStateChange()
...{
    if(xmlHttp.readyState == 4)
    ...{
        if(xmlHttp.status == 200)
        ...{
            var counter = document.getElementById("counter");
            counter.innerHTML = xmlHttp.responseText+"次";
            setTimeout("doCount()",10000);
        }
    }
}
</script>
</head>
<body >
<p align="center" class="style2">Ajax計數器</p>
<table width="300" border="0" align="center">
  <tr>
    <td><div align="center" id ="counter"></div></td>
  </tr>
</table>
</body>
</html>
counter.php清單

<?php
include_once("./config/connect.php");
include_once("./private/functions.php");

$ip = getip(); //擷取ip,函數定義在functions.php中
$time = time();

//訪問資料庫
$sql = "INSERT INTO `counter` VALUES (NULL,'$ip', '$time')";
$rs = $conn->Execute($sql);


//解析模板
$tpl->set_file("file","templates/counter.htm");
$tpl->parse("main","file");
$tpl->p("main");

@$rs->Close();
@$conn->Close();
?>
counter_action.php清單

<?php
include_once("./config/connect.php");
include_once("./private/functions.php");

//訪問資料庫
$sql = "SELECT * FROM `counter`";
$rs = $conn->Execute($sql);
$counter = $rs->rowcount();
$counter++;
echo $counter;

//釋放資料庫控制代碼
@$rs->Close();
@$conn->Close();
?>

 



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.