日期:2014-05-16  浏览次数:20343 次

关于js的setInterval函数对数据库进行刷新,怎么值不变呢
我是想插入新的数据时,就能够显示出来用到了setInterval函数代码是:

setInterval(function() {
var value1 = <?php echo db_value()?>;
var x = (new Date()).getTime(), // current time
y = value1;
series.addPoint([x, <?php echo db_value()?>], true, true);
alert(value1);
}, 1000);

其中的db_value()是访问数据库的,代码是:

<?php
function db_value()
{
include_once('connect.php');
$res = mysql_query("select value from date_data where id = (select max(id) from date_data)");
while($row = mysql_fetch_array($res)){
$value = $row[0];
//echo $value;
return $value;
}
}
?>

把value1的值alert出来,怎么数据库新数据插入后为什么没变化呢?应该怎么做呢??
------解决方案--------------------
你要分清后台代码与前台代码的关系。

你的要求要用ajax来实现
------解决方案--------------------
setInterval定时启动ajax访问php获取数据,你那样永远是初始值

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<<script>

    setInterval(function () {
        $.ajax({ type: 'POST', url: 'xxx.php', dataType: 'text', success: function (value1) {
            var x = (new Date()).getTime(), y = value1;
            series.addPoint([x, value1], true, true);
            alert(value1);
        }
        });
    }, 1000);
</script>


xxx.php
<?php
function db_value()
    {
    include_once('connect.php');
    $res = mysql_query("select value from date_data where id = (select max(id) from date_data)");
    while($row = mysql_fetch_array($res)){
        $value = $row[0];
        //echo $value;
        return $value;
    }
}
echo db_value();
?>


------解决方案--------------------
去下个jquery chm的手册 里面有关于ajax的详细介绍的