Javascript highchart,TypeError:obj为空

Javascript highchart,TypeError:obj为空,javascript,php,mysql,json,highcharts,Javascript,Php,Mysql,Json,Highcharts,我想用PHP从html中请求一个datetime变量 并使用该变量从mysql数据库中选择数据,然后制作json生成highchart 它成功地生成了json,但没有生成highchart 我用的是Firebug,上面写着TypeError:obj是空的 这是我的代码 PHP json(select_month=5;$month=$_请求['select_month']) 顺便说一下,当sql函数更改为 SELECT T,value FROM `Temperature`WHERE mon

我想用PHP从html中请求一个datetime变量

并使用该变量从mysql数据库中选择数据,然后制作json生成highchart

它成功地生成了json,但没有生成highchart

我用的是Firebug,上面写着TypeError:obj是空的

这是我的代码
PHP

json(select_month=5;$month=$_请求['select_month'])

顺便说一下,当sql函数更改为

    SELECT T,value FROM `Temperature`WHERE month(T)='5'
它将成功生成highchart,该数据将在5月份创建

(注:T的类型是时间戳,我不知道这有什么关系

我的代码怎么了? 有人能帮我解决这个问题吗。
非常感谢!!

您需要在JSON\u encode函数中设置一个JSON\u NUMERIC\u检查,因为您返回的是字符串而不是数字。

当您的查询返回一个空集时,变量$arrChart没有定义。您必须在循环之前定义此变量

$arrChart = array();
您的sql查询也不安全。您必须编写如下内容:

$sqlChart_Q = "SELECT T,value FROM `Temperature`WHERE month(T)=" . (int) $month;

当我设置为
echo json\u encode($arrChart,json\u NUMERIC\u CHECK);
它显示“警告:json\u encode()只需要1个参数,第20行给出2个参数,这是因为我的PHP版本太旧了。现在我更新到新版本,
echo json\u encode($arrChart,json\u NUMERIC\u CHECK);
可以工作,但仍然没有HighChart。看起来您有旧的PHP,所以在您的例子中,您需要在json上使用loop和parseFloat()函数将字符串转换为数字。感谢您的回复!当我添加
$arrChart=array()时
在PHP中,生成highchart时没有数据。这是因为您的查询没有返回任何数据。请尝试检查:if(空($\u REQUEST['select\u month'])。顺便说一句,使用$\u REQUEST变量不是一个好主意。您必须使用$\u GET数组(因为$.getJSON使用GET HTTP请求加载数据)。您的js代码中有一个错误。您没有发送select_month值。请尝试以下操作:$.getJSON('PHP/db_month.PHP',{select_month:your_month_value},函数(json){…});感谢您的回复!!我将$_REQUEST['select_month']更改为$_GET['select_month'],并且我确信$_REQUEST['select_month']不是空的,因为它可以成功生成json。我可以问一下为什么$.getJSON('PHP/db_month.PHP',{select_month:your_month_value},函数(json){…})和您的_month_值是什么意思吗?非常感谢您现在我知道了
$.getJSON('PHP/db_month.PHP',{select_month:your_month_value},函数(json)
mean。但是您的月值是否可以是php中的变量??
    SELECT T,value FROM `Temperature`WHERE month(T)='5'
$arrChart = array();
$sqlChart_Q = "SELECT T,value FROM `Temperature`WHERE month(T)=" . (int) $month;