【问题标题】:JS unserializing a PHP serialized arrayJS 反序列化 PHP 序列化数组
【发布时间】:2014-07-14 11:04:53
【问题描述】:

我有一个 php 制作的数组:

<?php information = array (
    'name' => 'John',
    'surname' => 'Doe'
); ?>

我用 php 序列化这个数组并将其放入输入的值中:

<input type="hidden" id="information" name="information" value="<?php echo htmlentities(serialize($hidden_information)); ?>" />

现在是 JS 部分。我得到了这个输入的值:

var information = $('input#information').val();

问题部分:我现在如何用 JS 反序列化这个 PHP 序列化数组?我想反序列化“信息”变量。
当它将被反序列化时,我想从数组中提醒姓名和姓氏。

或者可能,有什么方法可以在不反序列化数组的情况下获取这个名字和姓氏?

【问题讨论】:

  • 只有在与 PHP 通信时才应该序列化,如果你想知道人的姓名和姓氏,只需使用此信息创建 2 个输入字段,如果这是你想要的,我可以创建你一个答案。
  • 它也将在稍后与 PHP 进行通信以解决其他一些必需品。这就是为什么我需要序列化它。
  • 使用像 JSON 这样都可以理解的格式。

标签: javascript php jquery html serialization


【解决方案1】:

你需要将数组转换成 JSON 格式,这样 JS 会更容易理解,所以在你的 html 中这样做:

<input type="hidden" id="information" name="information" value="<?php echo htmlentities(serialize($hidden_information)); ?>" //This will comunicate with PHP
<input type="hidden" id="js_information" name="js_information" value="<?php echo json_encode($hidden_information); ?>" />

information 输入将用于与 PHP 通信,js_information 用于与 JS 通信。然后您可以使用以下方法在 JS 中获取该信息:

var information = JSON.parse($('#js_information').val());

注意:您需要 PHP 5.2 或更高版本,也无需将 input 放在 jQuery 选择器中,因为您已指定 ID `

【讨论】:

  • 您仍然需要对 HTML 的特殊字符进行编码。
猜你喜欢
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
相关资源
最近更新 更多