最终目标:我想把数据保存在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);
?>
(from: JSON encode MySQL results)
这就是我卡住的地方,因为我在把这些数据转换成JavaScript时遇到了麻烦。
我能找到的一个解决方案是在Javascript中解析一个单独的PHP数组:
<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来说尤其如此,因为它们是不可预测的,浏览器发现很难优化页面的任何部分。
我们讨论的是四分之一秒与百万分之一秒相比,最终结果完全相同。
使用jQuery进行AJAX调用非常简单。查看一下文档:http://api.jquery.com/jQuery.get/
您也可以不使用AJAX
var jsonarray = eval(<?php echo json_encode($array); ?>);