我正在从 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/