下面的php代码是计算某个表中行数的简单方法,但是只有在刷新页面时才能注意到行的任何增加或减少。那么有没有办法使用 jQuery/ajax 动态显示数据库表中的行数,而无需刷新页面,也无需任何单击功能。
网页.php
$sql=$db->prepare("SELECT * FROM table WHERE selector=:selector");
$sql->execute(array(':selector'=>$selector));
$count=$sql->rowCount();
echo $count;
计数.php
$sql=$db->prepare("SELECT * FROM table WHERE selector=:selector");
$sql->execute(array(':selector'=>$selector));
$count=$sql->rowCount();
$arr = array('count' => $count)
echo json_encode($arr);
将以下脚本添加到索引文件
<script>
$(document).ready(function() {
setInterval("ajaxcall()",2000);
});
function ajaxcall() {
$.ajax({
type: "GET",
url: "count.php"
success: function(response){
json_object = JSON.parse(response)
var count = json_object.count
/// set this count variable in element where you want to
/// display count
}
});
}
</script>
如果你不想使用Jquery,你可以试试:
function ajaxcall() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
json_object = JSON.parse(xhttp.responseText)
var count = json_object.count
/// set this count variable in element where you want to
/// display count
}
};
xhttp.open("GET", "count.php", true);
xhttp.send();
setTimeout(ajaxcall, 1000)
}
</script>
并在您的身体标签上添加加载事件
<body onload="setTimeout(ajaxcall, 3000)" >
或者你可以在一些按钮点击时调用Ajax
<button onclick="setTimeout(ajaxcall, 3000)">clickme</button>
尝试在 php 函数中进行 sql 查询,该函数可通过 url 访问并返回 json_encoded(num_of_rows)。然后在你的 javascript 中,你可以通过 ajax get 请求来获取它,指定它是 json,最好在一个函数中设置,该函数是按钮上的 onClick 事件,您将单击该函数进行调用而不刷新页面,但只是目标标签,您的 javascript 函数将在其中放置来自 ajax 的结果。希望它足够清楚。