Javascript 无法在ajax响应上正确更新Flot图
我有一个在页面加载时正确生成的图形。该代码是:Javascript 无法在ajax响应上正确更新Flot图,javascript,jquery,flot,graphing,Javascript,Jquery,Flot,Graphing,我有一个在页面加载时正确生成的图形。该代码是: <body> <div id="placeholder" style="width:800px;height:400px;"></div> <script type="text/javascript"> $(function () { $.plot($("#placeholder"), [ { data: %s } ], { xaxes: [ { mode: 'time' } ], ya
<body>
<div id="placeholder" style="width:800px;height:400px;"></div>
<script type="text/javascript">
$(function () {
$.plot($("#placeholder"),
[ { data: %s } ],
{ xaxes: [ { mode: 'time' } ],
yaxes: [ ] })
});
</script>
$(函数(){
$.plot($(“#占位符”),
[{数据:%s}],
{xaxes:[{mode:'time'}],
雅克斯:[]})
});
这很好用。我有一个按钮,它执行jquery并请求获取新的json数据结构。我已经验证了返回的json确实是正确的json。我正在尝试用以下方式绘制结果:
<script type="text/javascript">
$(function() {
$("#button").click( function()
{
//alert('button clicked');
$.ajax({
url: '/graph',
type: 'POST',
dataType: 'html',
data: {
start_date: $('#start_date').val(),
end_date : $('#end_date').val(),
ticker : $('#ticker').val()
},
success: function(result) {
var placeholder = $("#placeholder");
$.plot(placeholder,
[ { data: result } ],
{ xaxes: [ { mode: 'time' } ],
yaxes: [ ] });
}
});
}
);
});
$(函数(){
$(“#按钮”)。单击(函数()
{
//警报(“点击按钮”);
$.ajax({
url:“/graph”,
键入:“POST”,
数据类型:“html”,
数据:{
开始日期:$(“#开始日期”).val(),
结束日期:$(“#结束日期”).val(),
股票代码:$(“#股票代码”).val()
},
成功:功能(结果){
变量占位符=$(“#占位符”);
$.plot(占位符,
[{data:result}],
{xaxes:[{mode:'time'}],
雅克斯:[]});
}
});
}
);
});
它会重新绘制图形,但它是空的,y轴是默认值-1.0到1.0,x轴是单个时间条目00:00:00
我尝试过使用setData()和draw()方法调用,但它们无法解决问题
没有像firebug所示抛出javascript错误。
那么,我做错了什么
蒂亚!
您确定响应有效吗?您的数据类型是“html”,因此,除非您使用脚本标记执行某些操作,否则响应只是一个字符串。如果您直接返回JSON,那么您需要使用数据类型“JSON”。哇,捕捉得好!这就解决了问题。该死我认为数据类型是用于POST请求的,而不是响应数据的数据类型,这通常由响应中的Content Type头设置。。。