问题描述
背景资料
我需要将javascript数组“传递”给其他人编写的某些前端逻辑。 在查看他们的代码时,我看到他们正在创建伪数据,如下所示:
<script>
//define some sample data
var tabledata = [
{id:1, name:"JohnDoe", company:"Acme", email:"jdoe@acme.com", title:"CEO", regtype:"12345"},
{id:2, name:"JaneDoe", company:"Widgets Inc", email:"janedoe@hotmail.com", title:"Programmer", regtype:"12345"}
];
我的逻辑是所有从数据库获取真实数据的后端东西。 我返回一个看起来像这样的json字符串:
{
"items": [{
"id": 2089025,
"first_name": "Devon",
"last_name": "Ackerman"
}, {
"id": 2163367,
"first_name": "Ryan",
"last_name": "Acuff"
}]
}
问题
我不知道正确的方法来在PHP中进行转换/转换以使其最终成为Javascript中的数组。
码
这是我到目前为止在PHP中拥有的代码,a)证明我得到一个字符串b)尝试将其转换为json对象。
$json_obj = json_decode($response, true);
//echo json_last_error();
echo gettype($response);
echo gettype($json_obj);
第一个gettype()返回“字符串”。 第二个返回“数组”。
几行后,我完成了PHP部分,然后执行以下操作:
<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var tabledata = <?php echo ($json_obj) ?>;
console.log(typeof(tabledata))
console.log(tabledata)
我在控制台中看到以下内容作为对console.log()的两次调用的输出:
function
? Array() { [native code] }
有人可以指出我正确的方向吗?
谢谢。
1楼
Taplar
1
2019-02-12 22:23:40
var tabledata = <?php echo ($json_obj) ?>;
应该...
var tabledata = <?php echo json_encode($json_obj) ?>;
这会将其转换为json,并且在页面加载时浏览器将自动为您解析。
在您的情况下,由于您已经开始使用编码值,因此可以使用它。
var tabledata = <?php echo $response ?>;
或者我相信PHP具有回显的快捷方式,您也可以这样做...
var tabledata = <?= $response ?>;