在数据库表中,我有年龄列,其中有超过 50 行。
id age
1 45
2 41
3 09
......
60 11
我的数组中总是有 10 个键,
<?php
$arr = array(0,0,0,0,0,0,0,0,0);
echo json_encode($arr)."<br>";
$con = mysqli_connect('127.0.0.1','app_user2','qwe123','test');
$select="select age from ad;";
$res = mysqli_query($con, $select);
while ($row=$res->fetch_assoc()) {
$arr=array_slice($arr,1,9);
//$arr[]=$row['id'];
$arr[]=array($i++, (int)$row['age']);
echo json_encode($arr)."<br>";
}
?>
我得到以下输出=>
[0,0,0,0,0,0,0,0,0,[0,45]]
[0,0,0,0,0,0,0,0,[0,45],[1,41]]
[0,0,0,0,0,0,0,[0,45],[1,41],[2,11]]
[0,0,0,0,0,0,[0,45],[1,41],[2,11],[3,21]]
[0,0,0,0,0,[0,45],[1,41],[2,11],[3,21],[4,44]]
.............................
[[1,41],[2,11],[3,21],[4,44],[5,13],[6,15],[7,12],[8,7],[9,14],[10,11]]
........................
现在当我执行
echo json_encode($arr)
在 JavaScript 中我只得到最后 10 个值。我想一一执行所有行。我怎样才能做到这一点?可以吗?请帮忙。
这是我的脚本代码
<script type="text/javascript">
var data=[];
data=<?php echo json_encode($arr); ?>;
document.write(data);
</script>
最佳答案
这是因为您的字符串不是有效的 json 格式。然后你就得到一行的输出。您可以考虑以正确的方式构建,例如:
$myArray = []
while ($row=$res->fetch_assoc()) {
$arr=array_slice($arr,1,9);
//$arr[]=$row['id'];
$arr[]=array($i++, (int)$row['age']);
array_push($myArray, $arr);
}
然后:
data=<?php echo json_encode($myArray ); ?>;
(PS:在 JavaScript 中硬编码服务器端代码不是一个好的做法)
关于javascript - 我怎样才能执行javascript中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951762/