这真的让我一整天都在绞尽脑汁。我正在使用 getJSON() 检索由 PHP 文件生成的 JSON 数据,然后使用 DyGraphs 将其绘制成图形。我知道 PHP 文件可以正常工作,因为我使用它来生成初始图形而不发送数据。我也可以去请求的url看看数据是否正确。在调试时,我什至可以看到正在发出 GET 请求,并且在一瞬间,正确的数据确实显示在图表上。在这一瞬间之后,虽然图表刚刚重置。当 jQuery.event.add.elemData.handle.eventHandle 从调用堆栈中弹出时,这一切都会发生。
<form id="myform">
<fieldset>
<legend>Enter Information</legend>
<label for="day">Day:</label>
<input id="day" size="2" type="text">
<label for="month">Month:</label>
<input id="month" size="2" type="text">
<label for="year">Year:</label>
<input id="year" size="4" type="text">
<input type="submit">
</fieldset>
</form>
这是Javascript:
<script type="text/javascript">
$(function() {
$("#myform").submit(function() {
var day = $("input#day").val();
var month = $("input#month").val();
var year = $("input#year").val();
$.getJSON('Data.php',
{ day: day, month: month, year: year },
function(data) {
for (i=0;i<data.length;i++) {
data[i][0] = new Date(data[i][0].replace(/-/g,"/"));
data[i][1] = parseFloat(data[i][1]);
}
g2.updateOptions({ file: data });
}
);
});
});
</script>