0

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

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

3 回答 3

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"}
于 2013-08-11T18:56:53.497 回答
0

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

它可能是这样的:

php

$toJs['myObj'] = $myObj;
$toJs['whatElse'] = $otherVar;

在你看来

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

脚本.js

console.log(fromPHP.myObj); 
于 2013-08-11T18:50:00.963 回答
-2

你可以简单地做到这一点

<script>
  var a = <? = $phpvar;?>;
  a.someMethod();
</script>

编辑:没关系。我误读并认为您的意思是“变量”而不是对象。

于 2013-08-11T18:45:58.600 回答