2010-10-13 36 views
0

我使用这个PHP/CodeIgniter的库jQuery的Highcharts:http://www.crustiz.com/php-jquery/highcharts-library-for-codeigniter/传递一个PHP字符串(代表一个JS功能)通过json_encode()

该库做事情的方式是,它建立的一个PHP数组选项,然后使用json_encode将其转换为json(请参阅该库的第273行),然后由jQuery Highcharts插件使用该选项。这很好,除了我试图使用的选项是工具提示格式化程序,它需要是一个JavaScript函数,而不是一个字符串(请参阅http://www.highcharts.com/ref/#tooltip)。

由于库不具有提示功能,我创建了一个作为测试:

function set_tooltip() { 
    $this->a_options['tooltip']['formatter'] = 'function() { return this.series.name + "<br>" + this.x + ": " + this.y }'; 
    return $this; 
    } 

但是,这并不工作,因为JS的功能是作为一个字符串,而不是一个函数输出。任何人都知道在通过json_encode之后是否有办法让它成为函数,而不会重写库的那部分?

+1

无论你在做什么,通过ajax发送javascript可能不是最有效的方法。 – Incognito 2010-10-13 14:46:07

+0

我没有通过Ajax发送JS。 – 2010-10-13 15:18:17

回答

2

JSON并不意味着传达功能。如果您查看documentation,则只有四种类型的规格 - 对象,数组,字符串和数字 - 加上值true,falsenull

如果你坚持这样做,也许像Sending Javascript Functions Over JSON这样的文章会帮助你。

1

JSON没有“函数回调”类型,所以我认为这是不可能的。它知道only the basic typesstring/number/object/array

相关问题