有没有办法将对象从php传递到javascript,如node.js

时间:2013-08-11 18:42:08

标签: php node.js

我正在尝试将用node.js编写的应用程序移植到客户端的php中,我需要知道是否有办法将对象从php传递到javascript,如下所示:

<script>
    var a = <%- instance %>;
    a.someMethod();
</script>

3 个答案:

答案 0 :(得分:1)

最好的办法是先用JSON格式对数据进行编码。

您的数据

$data = array(
  "foo" => "bar",
  "hello" => "world"
);

你的剧本

<script>
  var data = JSON.parse(<?php echo json_encode($data) ?>);
</script>

  • PHP json_encode(value[, options])
    这个功能有几种选择;在文档中阅读更多内容,以指示特定的编码行为
    • JSON_HEX_QUOT
    • JSON_HEX_TAG
    • JSON_HEX_AMP
    • JSON_HEX_APOS
    • JSON_NUMERIC_CHECK
    • JSON_PRETTY_PRINT
    • JSON_UNESCAPED_SLASHES
    • JSON_FORCE_OBJECT
    • JSON_UNESCAPED_UNICODE


另一种选择(对于上述方法)将提供异步JSON API

您的JavaScript可以拨打电话

// using (e.g.,) jquery
var loadPeople = function(data) {
  console.log(data);
};

$.getJSON('/api/people.json').done(loadPeople);

您的PHP服务器必须在此路由上做出响应

// response to /api/people.json
header("Content-type: application/json");
var $data = array(
  "foo" => "bar",
  "hello" => "world"
);
echo json_encode($data);
exit;

JavaScript控制台输出

{foo: "bar", hello: "world"}

答案 1 :(得分:0)

您可以使用json将数据从PHP传递到JS。

可能是这样的:

的PHP

$toJs['myObj'] = $myObj;
$toJs['whatElse'] = $otherVar;
在您的视图中

<script>fromPHP = JSON.parse('<?php echo json_encode($toJs) ?>')</script>

的script.js

console.log(fromPHP.myObj); 

答案 2 :(得分:-2)

你可以简单地这样做

<script>
  var a = <? = $phpvar;?>;
  a.someMethod();
</script>
编辑:没关系。我误读并认为你的意思是“变量”而不是对象。