【问题标题】:Parsing MySQL into JavaScript Arrays through PHP and jQuery通过 PHP 和 jQuery 将 MySQL 解析为 JavaScript 数组
【发布时间】:2011-11-30 23:21:05
【问题描述】:

最终目标:我想将保存在 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 数组中,而无需将所有数据输出到页面。

我们将不胜感激。

谢谢!

【问题讨论】:

    标签: php javascript jquery mysql


    【解决方案1】:

    您发布的这个解决方案:

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

    其实是一个非常好的方法。使用 AJAX 的速度要慢得多(因为网络延迟)。

    除非您出于某种原因确实需要 AJAX,否则应避免使用它。它会给页面增加明显的加载时间,通常根本没有任何好处。

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

    我们说的是四分之一秒与百万分之一秒相比,最终结果完全相同。

    【讨论】:

      【解决方案2】:

      使用 jQuery 进行 AJAX 调用非常简单。看看文档:http://api.jquery.com/jQuery.get/

      【讨论】:

      【解决方案3】:

      不使用 AJAX 也可以这样做

      var jsonarray = eval(<?php echo json_encode($array); ?>);
      

      【讨论】:

        猜你喜欢
        • 2014-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-30
        相关资源
        最近更新 更多