Estoy tratando de jugar con gráficos altos y pasar datos entre un par de páginas según el elemento de un gráfico en el que se haga clic.
Tengo una matriz construida (de JIRA) que tiene todos mis datos, y la uso para crear un gráfico circular. Todo eso funciona como se esperaba.
He agregado un bloque de eventos al bloque de serie de mis datos
events: { click: function () { location.href = 'severity_data.php'; } }y eso funciona como se esperaba.
Luego establecí en un nivel alto un simple
sessionStorage.setItem("faveFilm", "shrek");y en la página de PHP, que en este momento es solo un html repetitivo, agregué
// var favoriteMovie = sessionStorage.getItem('faveFilm'); // console.log(favoriteMovie)y vi "shrek" en la consola.
Modifiqué el código para enviar un JSON, lo decodifiqué y vi que los datos estaban allí. Todo genial hasta ahora.
Luego traté de usar esto dentro de highcharts.
Mi primer intento fue insertar una llave.
key: sessionStorage.setItem("severity", sessionStorage.setItem("majorArray", JSON.stringify(major_data)););sin embargo, esto no funcionó porque obtuve algún tipo de falta de coincidencia {} (supuse que esto tenía que ver con la matriz y estropeaba la estructura del código de gráficos altos. (y pensé que cada elemento del gráfico enviaría un diferente formación)
Luego pensé que podría dar un paso atrás, tal vez configurar todos los datos en la sesión y en la clave simplemente enviar la palabra para el elemento del gráfico en el que hice clic:
{ name: 'Major', y: majorCount, key: sessionStorage.setItem("severity", "Major"); }Sin embargo, cuando ejecuto esto me sale:
SyntaxError no detectado: falta } después de la propiedad Listseverity2.php:93:58
nota: { abierto en la línea 90, columna 11
La línea 93 (en la salida generada) es clave: sessionStorage.setItem("severity", "Major");
¿Alguna idea de lo que estoy haciendo mal?
Su archivo php debería ser así
<?php echo json_encode( php code or variable or function ); ?>En primer lugar, no puede usar un punto y coma en una notación de objeto. Necesitas eliminar ; al final del valor clave. Sin embargo, la siguiente notación:
{ name: 'Major', y: majorCount, key: sessionStorage.setItem("severity", "Major") }por supuesto, guardará el valor específico en un almacenamiento de sesión, pero dará como resultado:
{ name: 'Major', y: majorCount, key: undefined }La misma situación con:
sessionStorage.setItem( "severity", sessionStorage.setItem("majorArray", JSON.stringify(major_data)) ); Debe usar los métodos setItem y getItem y recuerde que setItem devolverá undefined.
Documentos: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage