【问题标题】:Error passing to javascript a string encoded with php's urlencode()将使用 php 的 urlencode() 编码的字符串传递给 javascript 时出错
【发布时间】:2012-09-13 21:10:45
【问题描述】:

我有一个字符串从 php 脚本传递到用 rawurlencode() 编码的 jquery 脚本:

$str = '<test>';
echo rawurlencode($str);

我正在尝试使用 decodeURIComponent 对其进行解码:

var decoded = decodeURIComponent(str);

我终于得到了“%3Ctest%3E”。 (我也尝试过 urlencode() 得到相同的结果。)我做错了什么?

【问题讨论】:

  • 你为什么要对 HTML 进行 urlencoding?
  • 您不需要对其进行 urlencode。你为什么?
  • decodeURIComponent("%3Ctest%3E"); 给出"&lt;test&gt;"。您需要显示更多代码,但我会回应早期的评论者。如果您试图使字符串安全地插入&lt;script&gt; 元素,请使用json_encode
  • 我正在一个 php 脚本中从 mysql 请求中构建一个表,以便稍后放入 jquery ui 标签页

标签: php javascript jquery urlencode decodeuricomponent


【解决方案1】:

PHP端:

$str = htmlentities('<test>');
header("Content-type: application/json");
echo json_encode($str);

Javascript 方面:

var decoded = JSON.parse(answer);
$('#ui-tabs-1').append(decoded);

通过这种方式,您也可以将数组或对象从 PHP 传递到您的 JS 代码。

更多信息here

【讨论】:

  • var decoded = JSON.parse(answer); $('#ui-tabs-1').append(decoded); 显示“”“”。 firebug 显示响应“测试”。
  • 嗯,回声 json_encode(htmlentities($str));如果您想将结果插入 dom,可能会起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-12
  • 2012-10-06
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
相关资源
最近更新 更多