我有一个来自mysql表的多维关联数组,如下所示:
$i = 0;
$data = array();
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$arr = array();
$arr['id'] = $i;
$arr['code'] = $row['code'];
$arr['name'] = $row['name'];
$data[$i] = $arr;
$i++;
}
我会通过这个脚本将这些数组转换为json
var data = <?php echo json_encode($data, JSON_PRETTY_PRINT) ?>;
但是没有回应,所以我尝试使用这个脚本
var data = <?php echo json_encode($data) ?>;
这两个脚本都没有给出正确的结果
所以我尝试了以下脚本的其他方法,以便生成一个字符串变量,进一步将其转换为json
$i = 0;
$data = '[';
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
if ($data != "[") {$data .= ",";}
$data .= '{"id":"' . $i . '",';
$data .= '"code":"' . $row["code"] . '",';
$data .= '"name":"' . $row["name"] . '"}';
$i++;
}
$data .="]";
然后我用这些脚本改为json:
var data = <?php echo $data ?>;
结果仍然是错误的
对我有任何改进建议,谢谢
答案 0 :(得分:0)
在返回json数组之前尝试提供标头。在编码json之前添加部分header('Content-Type: application/json');
这样就可以将$ data作为JSON传递给浏览器
header('Content-Type: application/json');
echo json_encode(array('success' => TRUE, 'data' => $data));