我想从Mysql数据库中获取数据而不刷新页面。我在technotip.com上找到了代码。fetch.php文件很好,并执行我想要的数据,看起来就像在technotip示例中一样。但是,当我加载index.html文件时,它没有加载任何内容。请帮帮我。
Php文件<?php
$fXg = 0;
$fYg = 0;
$fZg = 0;
$alpha = 0.5;
include '../connection.php';
$data = mysql_query("SELECT * FROM Sensor1 WHERE id_wasp = 'Sensor1' and sensor='ACC'")
or die(mysql_error());
$result = array();
while($info = mysql_fetch_array( $data ))
{
$acc = explode(";",$info['value']);
$X = $acc[0];
$Y = $acc[1];
$Z = $acc[2];
//low pas filter
$fXg = $X * $alpha + ($fXg * (1.0 - $alpha));
$fYg = $Y * $alpha + ($fYg * (1.0 - $alpha));
$fZg = $Z * $alpha + ($fZg * (1.0 - $alpha));
//Roll & Pitch Equations
$roll = (atan2(-$fYg, $fZg)*180.0)/M_PI;
$pitch = (atan2($fXg, sqrt($fYg*$fYg + $fZg*$fZg))*180.0)/M_PI;
$frameno = $info['frame_number'];
array_push($result, array('pitch' => $pitch,
'roll' => $roll));
//echo "$pitch<br />'n";
//echo "$roll<br />'n";
//echo "$frameno<br />'n";
}
echo json_encode(array("result" => $result));
//print_r($result);
?>
my_script.js
$(document).ready( function() {
done();
});
function done() {
setTimeout( function() {
updates();
done();
}, 200);
}
function updates() {
$.getJSON("fetch.php", function(data) {
$("ul").empty();
$.each(data.result, function(){
$("ul").append("<li>Pitch: "+this['pitch']+"</li>
<li>Roll: "+this['roll']+"</li>
<br />");
});
});
}
index . html
<html>
<head>
<title>Fetch/Extract Data From Database: jQuery + JSON + PHP+ AJAX</title>
</head>
<body>
<ul></ul>
<script type="text/javascript" src="jquery-2.1.0.js"></script>
<script type="text/javascript" src="my_script.js"></script>
</body>
</html>
我刚刚在本地重新创建了您的问题,并发现了它的奇怪问题。以下行有语法错误:
$("ul").append("<li>Pitch: "+this['pitch']+"</li>
jQuery对换行符不满意,如果你把所有东西都放到一行中,去掉制表符和换行符,它工作得很好。
$("ul").append("<li>Pitch: "+this['pitch']+"</li><li>Roll: "+this['roll']+"</li><br />");