我目前正在尝试为我们的实验室建立一个简单的温度监控系统。它通过网络界面进行控制,该界面绘制了Dygraph中的温度与时间数据。温度数据被写入mySQL DB。我试图添加另一个输入字段,可用于选择要绘制的特定时间范围。 我目前正在使用jQuery日期框来选择似乎工作正常的时间窗口。我正在向查询数据库的PHP脚本发送AJAX请求。 PHP脚本只输出内部服务器错误(500),而不是向我显示正确的数据点。当PHP的$ _POST部分和jQuery脚本的数据部分被删除时,该脚本可以正常工作。
我最近的JS代码是:
$("#UpdateGraph").on("click", function(){
var startDate = $("#datestart").val();
var endDate = $("#datestop").val();
$.ajax({
url: "updateGraph.php",
data: {start : startDate,
stop : endDate},
datatype: "json",
type: "POST",
success: function(data) { DyGraph(data); }
});
});
jQuery代码位于$(document).ready()环境中。 相应的PHP脚本如下所示:
<?php
$conn = new PDO("mysql:host=localhost;dbname=temperature", "USERNAME", "PASSWORD");
$results = array();
$startDate = $_POST['start'];
$stopDate = $_POST['stop']:
$query = "SELECT atime,temperature FROM temp WHERE atime BETWEEN '" . $startDate . "' AND '" . $stopDate . "';" ;
$stmt = $conn->prepare($query);
$stmt->execute();
while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
$results[] = $result['atime'].",".$result['temperature'];
}
print_r(json_encode(implode("\n+",$results)));
?>
有什么建议我做错了吗?非常感谢!
答案 0 :(得分:0)
我想,您的错误来源是行$stopDate = $_POST['stop']:
中的语法错误
该行的末尾有一个冒号。你应该把它改成分号。
服务器上的php脚本中的语法错误将在http客户端中显示错误500。我建议你使用linter来避免这种错误。所有受欢迎的编辑都有插件。