gpt4 book ai didi

php - 编码为 JavaScript 对象,函数被替换

转载 作者:行者123 更新时间:2023-11-30 06:33:01 25 4
gpt4 key购买 nike

我有一个关于 highcharts 项目的问题,图表选项正在保存在数据库中。我正在使用以下代码在图表上打印。让我使用一些示例代码来解释我的问题。

echo 'var options69 = '.$highcharts_json_options;
echo PHP_EOL;
echo 'var options69_func = '. json_encode( $functions);
echo PHP_EOL;

echo '$(document).ready(function() {';
echo PHP_EOL;
echo ' chart69 = new Highcharts.Chart(
$.extend(true, options69, options69_func)
);';
echo PHP_EOL;
echo '});';

问题是 $functions 没有转换成正确的 JavaScript 对象。这是 $functions 的代码示例

$functions = array(
'chart' => array(
'events' => array(
'click' => "function(){inboxMenu(this.options);}"
)

),
'tooltip' => array(
'formatter' => "function(){
return '<b>'+ this.series.name + ':</b>'+ this.y;
}"
)
);

目前,json_encode( $functions) 输出是

var options69_func = {
"chart": {
"events": {
"click": "function(){inboxMenu(this.options);}"
}
},
"tooltip": {
"formatter": "function(){return '<b>'+ this.series.name + ':<\/b>'+ this.y;}"
}
}

但我需要值 var options69_func 就像

var options69_func = {
"chart": {
"events": {
"click": function(){
inboxMenu(this.options);
}
}
},
"tooltip": {
"formatter": function(){
return '<b>'+ this.series.name + ':<\/b>'+ this.y;
}
}
}

然后只有图表click eventformatter 起作用。这些值来自服务器数据库的动态。我可以将回调函数添加到 json_encode 吗?

我将 php 生成的 js 代码添加到 http://jsfiddle.net/u9W6X/

我不喜欢在客户端使用 eval 函数..

最佳答案

得到options69_func后,如果你想执行“点击”功能,你可以试试这个:eval('('+options69_func.tooltip.click+')'+'();');

关于php - 编码为 JavaScript 对象,函数被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16354907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com