我有一个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 ?>;
结果仍然是错误的
有什么改进的建议给我,谢谢
尝试在返回json数组之前提供标题。就在编码json之前添加部分header('Content-Type: application/json');
这样你可以将$data作为json传递给浏览器
header('Content-Type: application/json');
echo json_encode(array('success' => TRUE, 'data' => $data));