Domanda

Io sto usando questa libreria PHP / CodeIgniter per jQuery Highcharts: http://www.crustiz.com/php-jquery/highcharts-library-for-codeigniter/

Il modo in cui biblioteca fa le cose è che si costruisce un array PHP di opzioni, poi lo converte in JSON utilizzando json_encode (vedere la linea 273 di quella biblioteca) che viene poi utilizzato dal plugin jQuery Highcharts. Questo è bene, tranne l'opzione che sto cercando di uso è il formattatore tooltip, che deve essere una funzione JavaScript, non una stringa (vedi http://www.highcharts.com/ref/#tooltip ).

Dal momento che la libreria non dispone di una funzione di suggerimento, ho creato uno come un test:

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

Ma questo non funziona come la funzione di JS è uscita come una stringa, non una funzione. Qualcuno sa se c'è un modo per farlo essere una funzione dopo aver attraversato json_encode senza dover riscrivere quella parte della biblioteca?

È stato utile?

Soluzione

JSON non è destinato a trasmettere funzioni. Se si dà un'occhiata alla documentazione , ci sono solo le specifiche per quattro tipi - oggetto, un array di stringa e il numero di -. più i valori true, false e null

Se ti ostini a fare questo, forse, un articolo come Funzioni di invio Javascript corso JSON vi darà una mano.

Altri suggerimenti

JSON non ha un tipo di "funzione di callback" quindi penso che questo non è possibile. Si sa solo i tipi di base : string / number / object / array

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top