我在使用$ .getJSON时遇到了一些问题,我真的需要一些帮助,因为我不知道如何解决这个问题,而且我已经被困在这里好几天了。这是在HTML中选择选择选项时应生成高级图表的js文件:
$(document).ready(function() {
$("#paese").change(function(){
var seriesOptions = [];
$.getJSON("prova.php", function(data) {
seriesOptions = data;
});
var chart1 = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'column',
spacingLeft: 20,
borderWidth: 1
},
....
series: [{
name: 'Italia',
data: seriesOptions
}],
第一部分有什么不对吗?当我选择一个选项时,似乎highcharts没有得到php文件,但我很确定它是正确的,这里是(PHP文件):
<?PHP
header("Content-Type: application/json; charset=UTF-8");
$conn = mysql_connect("localhost", "root");
$paese = null;
if(isset($_GET['paese'])) $paese = $_GET['paese'];
$ok = mysql_select_db("liberta", $conn);
$response = array();
$sql="SELECT `valori`.Punteggio FROM `valori` INNER JOIN `nazioni` ON `valori`.Nazione
= `nazioni`.ID WHERE `nazioni`.Nome = '$paese'";
$res=mysql_query($sql);
while($record=mysql_fetch_row($res)){
$response[] = intval("$record[0]");
}
mysql_close($conn);
print(json_encode($response));
我正在尝试从我使用PHPmyadmin创建的数据库中获取数据并将它们直接放入highcharts中,但它不起作用。如果你能帮助我,我会很高兴,因为这是我必须参加的考试。非常感谢你。
答案 0 :(得分:0)
我建议熟悉有关预处理数据http://docs.highcharts.com/#preprocessing的文章。
您需要具有以下结构:
{
data:[1,2,3]
}
尝试替换
while($record=mysql_fetch_row($res)){
$response[] = intval("$record[0]");
}
与
while($record=mysql_fetch_row($res)){
$response['data'][] = intval($record[0]);
}
答案 1 :(得分:0)
你的问题在于javascript部分。当您调用$ .getJSON时,您提供的回调将在服务器响应时异步调用。您的代码中的Howether是以同步方式立即调用Highcharts()构造函数。在它被称为seriesOption变量的点仍然等于[]。尝试从回调中调用构造函数,如下所示:
$.getJSON("prova.php", function(data) {
var chart1 = new Highcharts.Chart(....
series: [{
name: 'Italia',
data: data}])});