ajax响应后未更新的值
我通过ajax将一些表单数据发送到同一页面中的php脚本。 PHP必须处理数据并在同一页面中显示结果。
我正在使用这个语法的ajax:
$.ajax ({ type: "POST", url: "", data: $("form").serialize(), success: function(result) { updatechart(); console.log(result); } });
我基本上是尝试根据表单中输入的数据更新图表中的某些值,然后由php脚本处理。 当我做console.log(result);
时,我得到了页面的全部来源console.log(result);
并且在执行此操作后,我的控制台中的值会更新,但图表不会更新。 当我查看源页面时,值保持不变。 我该怎么办?
function updatechart() { var json=; var direct=json['direct']; var total=json['total']; var referred=total-direct; var aid=new Array(); var count=new Array(); for(var i=0;i<json['aid'].length;i++) { aid[i]=json['aid'][i]; count[i]=json['count'][i]; } var series = [{ name : "Referred", data: [referred] }, { name: "Direct", data: [direct] }]; for(var i=0; i<aid.length;i++) { series.push({ name: 'AID-'+[aid[i]], data: [count[i]] }) } var options = { chart: { renderTo: 'container', type: 'column' }, title: { text: 'User Source Chart' }, xAxis: { categories: ['Users'] }, yAxis: { min: 0, title: { text: 'Total users' } }, tooltip: { pointFormat: '{series.name}: {point.y} ({point.percentage:.0f}%)
', shared: true }, plotOptions: { column: { stacking: 'percent' } }, series: series }; chart = new Highcharts.Chart(options); }
这是我的updatechart()代码。 问题是,json值没有更新。
这是预期的行为。 将PHP处理移动到其他页面。
$.ajax ({ type: "POST", url: "anotherphppage.php", data: $("form").serialize(), success: function(result) { updatechart(result); } });
试试这个,你会明白我的意思:
Try this:
将result
作为参数传递给updatechart()
$.ajax ({ type: "POST", url: "", data: $("form").serialize(), success: function(result) { updatechart(result); } });
然后通过参数访问结果 。
function updatechart(result) { //....... //....... console.log(result); }
希望你尝试这样的事情。