如何将JSON从PHP传递给jQuery

时间:2013-04-29 12:36:54

标签: php jquery json

我正在尝试使用PHP从数据库中获取数据并将其传递给jQuery,以便我可以在动态的Google图表中使用它。我已经使用json_encode()将我的PHP数组转换为JSON,但现在我必须使用jQuery访问此数据以将其传递给google图表。

我的PHP代码:     

$db = new Db(DB_NAME, DB_HOST, DB_USER, DB_PASSWORD);

$dates = array();
for($number=14; $number>=1; $number--) {
    $dateValue = date('j M', strtotime("-$number day"));
    $getCount[$number] = $db->get($this->styleName, $dateValue);
    $items[$dateValue[$number]] = $getCount[$number];
}
$json_encode = json_encode($dates);
var_dump($json_encode);

我输出的JSON:

{
"15 Apr": "19",
"16 Apr": "15",
"17 Apr": "18",
"18 Apr": "13",
"19 Apr": "27",
"20 Apr": "2",
"21 Apr": "12",
"22 Apr": "9",
"23 Apr": "11",
"24 Apr": "20",
"25 Apr": "25",
"26 Apr": "137",
"27 Apr": "99",
"28 Apr": "115"
}

我的主要问题是如何将此数据传递给我的jQuery脚本? 如果我以正确的方式做这件事或帮助我走上正轨,有人会说我吗?

提前致谢:)

3 个答案:

答案 0 :(得分:6)

在php文件的开头发送json标头:

<?php
header('Content-Type: application/json');
// build $datas
echo json_encode($datas);
?>

用jquerys getJSON函数拉json:

$.getJSON('path/to/php/file.php', function(jsondata) {
    // use jsondata here
});

答案 1 :(得分:0)

您可以在单独的请求中执行此操作,因此您的请求仅输出json并使用$ .getJson()获取它;这是一种干净的方式,但需要额外的请求;

或者您可以将其包含在html

中的标签中

输出模板:

<html>
  ...
  ...
  <script type="text/javascript">
    $.yourOwnJqueryExtention.setJSON(<?=$myJSON?>); 
  </script>
</body>
</html>

答案 2 :(得分:0)

更简单,您不需要更改标题信息(例如,在Wordpress中几乎不可能),只需将编码对象转换为字符串即可。

$json_encode = (string)$json_encode;