2014-08-31 77 views
-1

道歉,如果我的标题是模糊的,我会尽我所能迭代。使用JS解析JSON响应

我正在使用以下PHP代码从MySQL DB返回COUNT查询。

的响应是细但是我无法解析与JS将响应作为我想的仪表板内仅呈现的值(freeboard.io)

<?php 
//Create Database Connection 
$db = mysql_connect("localhost","root","passwordROOT12"); 
if (!$db) { 
    die('Could not connect to the db brah: ' . mysql()); 
} 

//Select the database 
mysql_select_db("cp_investigations",$db); 

//Replace the * in the query with the column names. 
$result = mysql_query("select count(*) from emailAccount", $db); 

//Create an array 
$json_response = array(); 

while ($row = mysql_fetch_array($result)) { 
    $json_response[] = $row; 


} 
print json_encode($json_response); 

//Close the db connection 
fclose($db); 

>

RESPONSE?:

[{ “0”: “49”, “计数(*)”: “49”}]

这里是我目前正在使用中的学尝试JS t将值“49”反映回仪表板。

datasources["Test"].0]. 

的问题是这是回访:NaN的在仪表板界面。

我很确定我需要改变这个当前的JS,以便它正确地解析只有预期的价值。 (不过,我已经试过我知道一切没有运气)

+0

解析'VAR jsObj = JSON的第一行。使用'jsObj [0] [“0”] // - >“49”或“jsObj [0] [”count(*)“]// - >“49”(取决于需要哪个“49”)。 – user2864740 2014-08-31 02:33:52

+0

希望代码中的密码不是生产服务器上的真实密码。如果是这样,您可能需要在生产代码中对其进行更改。 – jmort253 2014-08-31 03:08:52

+0

如果有人正在阅读本文,这肯定不是!真正的密码为我的VPS位于@ 161.12.211.23 ... T.T – shadowmoses 2014-08-31 06:03:24

回答

0

更改该查询:

SELECT COUNT(*) AS total FROM emailAccount 

这样一来,你会得到“总”在你的JSON指。 json.total

你在因为$ json_response响应看到0] ...添加[]是创建一个数组,这是0键

+0

所以问题是,仪表板界面不认识任何东西,但第一个“0”,并希望使用此JS: datasources [“EmailCount “] .0。 我怎样才能改变上面的JS引用新的字典字符串? 我认为这应该是: datasources [“EmailCount”]。EmailCount]。 – shadowmoses 2014-08-31 02:54:15

+1

你美丽!就是这样,阵列造成了这个问题。 Thanks Mate〜 – shadowmoses 2014-08-31 02:58:48

0

我会做的第一件事是替换此:

$result = mysql_query("select count(*) from emailAccount", $db); 

与此:

$result = mysql_query("select count(*) as EmailCount from emailAccount", $db); 

这应该给你一个更好的使用JSON响应(字典键需要字符串)。然后,你应该能够做这样的事情:

var myCount = datasources.EmailCount; 
+0

非常感谢查询中的“as”提示非常好用。 但是*保持呼吸*出于某种原因,仪表板只能查找“0”作为字典键的引用。 Screenshot here:http://tinypic.com/r/29gjs6x/8 – shadowmoses 2014-08-31 02:43:01