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); } 

希望你尝试这样的事情。