通过PHP和jQuery将MySQL解析为JavaScript数组

Jer*_*emy 3 javascript php mysql jquery

终极目标:我想将我保存在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);

?>
Run Code Online (Sandbox Code Playgroud)

(来自:JSON编码MySQL结果)

这是我被困的地方,因为我无法将这些数据导入JavaScript.

我能找到的一个解决方案是在Javascript中解析一个单独的PHP数组:

<script>
     var jsonarray = <?php echo json_encode($array); ?>;
     // now you can use jsonarray in your javascript
</script>
Run Code Online (Sandbox Code Playgroud)

但是这个实现的问题在于它会将我查询的所有数据库内容吐出到页面的源代码上.如果我必须这样做,我不妨跳过数据库并将所有内容保存在javascript中.

我认为必须有一种方法可以使用jQuery/AJAX将$ num的值传递给PHP脚本,获取此数据并将其放入JavaScript数组中,而无需将所有数据输出到页面.

任何援助将不胜感激.

谢谢!

Abh*_*ert 7

您发布的此解决方案:

<script>
  var jsonarray = <?php echo json_encode($array); ?>;
  // now you can use jsonarray in your javascript
</script>
Run Code Online (Sandbox Code Playgroud)

实际上是一个非常好的方法.使用AJAX的速度非常慢(因为网络延迟).

除非你出于某种原因确实需要AJAX,否则你应该避免使用它.它会为页面添加明显的分秒加载时间,通常根本没有任何好处.

最重要的是,在构建页面时,您希望尝试减少浏览器和服务器之间的单个网络请求数.请求越少,页面越快.对于javascript和ajax尤其如此,因为它们是不可预测的,并且浏览器发现很难优化页面的任何部分.

对于完全相同的最终结果,我们谈论的是四分之一秒,而百万分之一秒.