将 PHP 生成的 JS 对象传递给 JS
Pass PHP generated JS objects to JS
>我在PHP中生成一些JS对象字符串,因为我需要的所有变量都在那里,而不是将它们传递给js并在那里生成对象:
$results[] = "{value:" . $data . ",color:'"rgba($aa,$ab,$ac," . Config::$TRANSPARENCY_B . ")'",highlight:'"rgba($ba,$bb,$bc," . Config::$TRANSPARENCY_B . ")'",label:'"" . $entry->getDate() . "'"}";
现在我想将JS对象字符串的完成结果列表传递给JS以显示它。生成的结构应如下所示:[{object1}, {object2}, ...]
为了实现这一目标,我使用htmlspecialchars(json_encode($result), ENT_QUOTES, "UTF-8")
然而,这最终会出现在结构中:{"{object1}", "{object2}", ...]
,这当然是行不通的。我怎样才能扔掉无用的封闭"
?我浏览了json_encode()
并htmlspecialchars()
但那里的参数似乎都不适合。
有什么想法吗?谢谢!
编辑:事实证明我完全愚蠢。当然,我应该打包一些真正的物品,而不是代表它们的字符串。谢谢!
为什么不直接创建真实的对象,这样将它们编码为 JSON 就很容易了
$obj = new stdClass;
$obj->value = $data;
$obj->label = $entry->getDate();
$results[] = $obj;
echo json_encode($results);
关联数组也将在 JSON 中输出为"对象",并且可能更容易
你最好不要手动用字符串制作JSON,而是使用json_encode
函数为你做这件事:
$results[] = array(
'value' => $data,
'color' => "rgba($aa,$ab,$ac," . Config::$TRANSPARENCY_B . ")",
'highlight' => "rgba($ba,$bb,$bc," . Config::$TRANSPARENCY_B . ")",
'label' => $entry->getData()
);
echo json_encode($results);
相关文章:
- 查看JS对象的所有键,甚至是getter定义的键
- 在URL中传递JS对象
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- JS对象密钥序列
- 在ajax调用中阻止来自JS对象的函数
- 属性未添加到JS对象
- 将字符串转换为JS对象
- 使用lodash查找具有truthy值的JS对象的属性
- 将toString方法暴露给nashorn中的js对象
- JSON数组转换为JS对象数组
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- 设置1400个Raphael.js对象的不透明度动画会影响动画性能
- 以非ajax方式将js对象传递给mvc操作
- JS对象->来自jquery ajax的JSON提交->php迭代
- XMLHttpRequest发送JS对象
- 使用游标循环将JS对象添加到数组中
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 将JS对象数组转换为嵌套形式的最有效方法
- 在知道对象值的情况下,确定数组中JS对象的索引
- JS对象文字中的方法和子方法