valores no actualizados después de una respuesta ajax

Estoy enviando algunos datos de formulario a través de ajax a un script php en la misma página. PHP debe procesar los datos y mostrar los resultados en la misma página.

Estoy usando esta syntax para ajax:

$.ajax ({ type: "POST", url: "", data: $("form").serialize(), success: function(result) { updatechart(); console.log(result); } }); 

Básicamente estoy tratando de actualizar algunos valores en un gráfico basado en datos ingresados ​​en el formulario y luego procesados ​​por un script php. Obtengo toda la fuente de la página cuando hago console.log(result); y los valores se actualizan en mi consola después de hacer esto, pero el gráfico no se actualiza. Cuando veo-fuente la página, los valores siguen siendo los mismos. ¿Que debería hacer?

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

Este es mi código updatechart (). El problema es que el valor json no está actualizado.

Ese es el comportamiento esperado. Mueva su procesamiento PHP a una página diferente.

 $.ajax ({ type: "POST", url: "anotherphppage.php", data: $("form").serialize(), success: function(result) { updatechart(result); } }); 

Prueba esto y verás lo que quiero decir:

       Try this:

Pase el result como parámetro a updatechart()

 $.ajax ({ type: "POST", url: "", data: $("form").serialize(), success: function(result) { updatechart(result); } }); 

luego acceda a los resultados a través del parámetro .

 function updatechart(result) { //....... //....... console.log(result); } 

Espero que estés intentando algo como esto.