【发布时间】:2013-02-07 20:23:52
【问题描述】:
我正在通过 Ajax 显示数据库中的数据,我需要添加带有数据库时间的倒数计时器。是否有可能做到这一点,因为我正在努力解决它大约 24 小时。你可以在这里查看主代码http://www.egrupper.pl,你会看到倒数计时器不起作用。 AJAX 代码:
function showDeals(sid,limit,cat)
{
sid=typeof sid !== 'undefined' ? a : 1;
limit = typeof limit !== 'undefined' ? limit : 0.7;
if(sid=="" || limit==""){
document.getElementById("con").innerHTML="";
return;
}
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("con").innerHTML=xmlhttp.responseText;
$('#con').masonry({
itemSelector: '.clsDeal_Blk_Cont'
});
}
}
xmlhttp.open("GET","getdeals.php?sid="+sid+"&limit="+limit+"&cat="+cat,true);
xmlhttp.send();
}
在 getdeals.php 中我有如下所示的倒数计时器代码:
$(document).ready(function(){
$("#countdown_<?php echo $id; ?>").countdown({
date: "date_from_database",
format: "on"
},
function() {
// callback function
});
});
感谢@user2008945 的帮助,这对我很有用,但无论如何我需要在页面上设置多个倒数计时器,我虽然这样的事情会做,但不幸的是没有:
success:function(rows){
for (var i in rows){
var row=rows[i];
var id=row[0];
var end_date=row[1];
$("#countdown_"+id).countdown({
date: end_date,
format: "on"
},
function() {
// callback function
});
}
}
和
$data=array();
while($row=mysql_fetch_row($result))
{
$data[]=$row;
}
die (json_encode($data));
【问题讨论】:
-
为什么不用jquery ajax?
-
因为我认为这是从数据库中获取数据而无需重新加载网站的最佳方式
-
请查看此链接:api.jquery.com/jQuery.ajax
-
jQuery ajax 也不会刷新页面,它只是使用 ajax 的一种更简洁的形式,并且支持跨浏览器,就像你现在正在做的一样。
-
另一种方法是使用套接字。阅读更多关于socket.io
标签: php javascript mysql ajax countdown