【发布时间】:2014-06-13 20:09:44
【问题描述】:
我需要使用 PHP 和 json_encode() 生成以下脚本。
var obj= {
o1:123,
o2: {
o3: 456,
o4: function() {return $( "#myID" ).val();}
}
}
我的尝试如下。
<?php
$a=array(
'o1'=>123,
'o2'=>array(
'o3'=>456,
'o4'=>'function() {return $( "#myID" ).val();}'
)
);
$json=json_encode($a);
?>
<script type="text/javascript">
<?php echo("var obj={$json};");?>
console.log(obj);
</script>
结果输出如下。属性周围的引号没有问题,但是,JavaScript 周围的引号将其呈现为字符串而不是 JavaScript。我显然不能不引用数组中的 JavaScript,因为它会导致 JSON 格式错误。
如何在 PHP 的 json_encode() 中包含 JavaScript?
var obj={
"o1":123,
"o2":{
"o3":456,
"o4":"function() {return $( \"#username\" ).val();}"
}
};
【问题讨论】:
-
您将无法使用 json_encode 生成 JavaScript 对象,因为 JSON 与 JavaScript 对象不同。
-
@DaveChen。是否可以使用任何从数组或对象获取输入的内置 PHP 函数为 JavaScript 对象创建适当的文本?
标签: javascript php json