最终目标:我想将我保存在 MySQL 数据库中的数据放入 JavaScript 中的数组数组中,以便客户端可以对其进行操作。
到目前为止,我已经能够使用以下代码从我的数据库中提取数据:
<?php
...
$num=1;
$q = "SELECT blah1, blah2, blah3 WHERE blah4=$num";
$sth = mysqli_query ($database, $q);
$rows = array();
while($r = mysqli_fetch_assoc($sth)) {
$rows[] = $r;
}
print json_encode($rows);
?>
(来自:JSON encode MySQL results)
这就是我卡住的地方,因为我无法将这些数据导入 JavaScript。
我能找到的一个解决方案是 Parsing a Separate PHP Array in Javascript :
<script>
var jsonarray = <?php echo json_encode($array); ?>;
// now you can use jsonarray in your javascript
</script>
但此实现的问题在于它会将我查询的所有数据库内容吐出到页面的源代码中。如果必须这样做,我还不如跳过数据库,将所有内容保留在 javascript 中。
我认为 jQuery/AJAX 必须有一种方法可以将 $num 的值传递给 PHP 脚本,获取此数据并将其放入 JavaScript 数组中,而不必将其全部输出到页面。
如有任何帮助,我们将不胜感激。
谢谢!
最佳答案
您发布的这个解决方案:
<script>
var jsonarray = <?php echo json_encode($array); ?>;
// now you can use jsonarray in your javascript
</script>
其实是一个很好的做法。使用 AJAX 的速度要慢得多(因为网络延迟)。
除非出于某种原因确实需要 AJAX,否则应避免使用它。它会显着增加页面的加载时间,通常毫无益处。
最重要的是,在构建页面时,您想尝试减少浏览器和服务器之间的单个网络请求的数量。请求越少,您的页面就会越快。对于 javascript 和 ajax 尤其如此,因为它们是不可预测的,并且浏览器发现很难优化使用它的页面的任何部分。
对于完全相同的最终结果,我们谈论的是四分之一秒与百万分之一秒。
关于php - 通过 PHP 和 jQuery 将 MySQL 解析为 JavaScript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334438/