php - 如何在客户端存储一个php数组?

标签 php javascript jquery json dom

我正在从 mysql 数据库中提取一个数组。一个非常简单的 select 语句,然后将其放入您的普通多维数组(行和列)中以生成一些 HTML。到目前为止一切顺利。

我希望能够将该数组存储在客户端的某处(DOM?),以便客户端可以重新使用和操作该数据(通过 jQuery),而不必每次都重新查询数据库以获取相同的数据时间。

所以...假设我的 php 数组是:

$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banana",
                                       "c" => "apple"
                                     ),
                  "numbers" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "holes"   => array (      "first",
                                       5 => "second",
                                            "third"
                                     )
                );

如何在客户端存储 $fruits,以便我可以通过 javascript 重新使用命令中的数据?

最佳答案

使用 json_encode 将 $fruits 序列化为 JSON ,然后将其写入隐藏输入之类的内容。使用 jQuery,您可以查询 DOM 以获取输入和 $.parseJSON它的值(value)。

服务器端:

<input type="hidden" id="FruitData" value="<?php echo htmlentities( json_encode( $fruits ) );?>" />

客户端:

var fruits = $.parseJSON( $( '#FruitData' ).val() );

你可以把它放在任何你喜欢的地方,真的——我只是喜欢输入。输入对于将数据发送回服务器也很方便(甚至通过 AJAX 以外的方法)。 cookies 也可以。不过,我确实避免直接输出到脚本 block 中。我不喜欢我的语法编辑器如何在 JS 内部的 PHP 上运行,它通常会导致大量全局化代码,并且在将脚本移动到外部文件时妨碍我。

此外,只要您提供 JSON API对于旧版浏览器,您可以将 $.parseJSON 替换为 JSON.parse

关于php - 如何在客户端存储一个php数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5561348/

相关文章:

php - 将 php 文件的输出保存在 html 文件中

javascript - d3v4 行生成器返回 NaN

javascript - 在更改选择框时搜索提交表单

JavaScript:如何用 a-j 替换 0-9

javascript - 多个按钮打开相同的操作但不同的ID容器

php - 如何使用 php 按学年和学期显示表格?

php - 在 PHP block 内使用 Javascript 设置 HTML 文本框的值(使用 echo)

javascript - 逻辑选择类别和子类别(php、joomla、javascript、ajax)

javascript - 有没有办法通过它的 css 'left' 和 'top' 属性找到一个 div 元素?

jQuery 可在浏览器之外拖动