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

标签 php javascript jquery mysql

最终目标:我想将我保存在 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/

相关文章:

python - Django框架下上传未知数量(动态决定)的文件

javascript - Twitter Bootstrap 弹出窗口在第一次点击时不起作用

php - 获取主键作为外键放入其他表中

javascript - document.load 中是否应用了所有 CSS?

javascript - javascript回发引起的Cachebuster参数?

javascript - jquery使用正则表达式替换 anchor 中的字符串

jquery - 隐藏列中的行...

php - Laravel Queue 如何在作业句柄方法中获取数据

c# - 连接 C# 后端和 PHP 前端

php 不能执行任何外部命令?