-1

我的 dataPoints 字符串保存在数据库中。我将它传递到 php 中的隐藏变量中。并使用 .val() 我进入 jquery。现在我必须在 canvas js 的 dataPoints 中传递它。

请参阅我下面的 php 代码。

<input type="hidden" id="graph_data" name="graph_data" value="<?php echo $graph_data ?>" >

$graph_data 包含以下刺痛。

{x: 30, y:[.00, 3.20], label: "Driving"},{x: 10, y:[3.20, 5.17], label: "Off-Duty"}

请参阅我的 jquery 代码。

var graph_data = $('#graph_data').val();

data: [
    {
        type: "rangeBar",
        dataPoints: [graph_data]
}]

但它不工作。

4

4 回答 4

0

我想知道问题是否实际上不在,data因为它没有封装在对象中。

var data = [
    {
        type: "rangeBar",
        dataPoints: [graph_data]
}];

这是你的错误吗?

于 2015-10-09T23:06:48.370 回答
0

你肯定是在艰难地移动数据。

PHP 有一个方便的json_encode()函数,可以为 Javascript 编码几乎任何数据。因此,与其试图在表单中隐藏复杂的数据,不如让这些数据成为 javascript 的一部分。

像这样:

<script>
var graph_data = <?php json_encode($graph_data); ?>;
var chart = new CanvasJS.Chart("chartContainer",
{
    data: [{
        type: "rangeBar",
        dataPoints: graph_data
    }]
};
<script>

就将复杂数据从 PHP 插入到 Javascript 而言,这应该可以解决您的问题。您可以在浏览器中查看源代码以了解数据到 json 的转换是如何产生的,并确保您没有任何语法错误。

请注意,我不确定您是否已整理好对 CanvasJS 的使用。从您的原始帖子看来,您也遇到了麻烦。但是,一次一个问题。

于 2015-10-10T00:04:23.543 回答
0

啊! 尝试这个:<input type="hidden" id="graph_data" name="graph_data" value="<?php echo str_replace('"', '\\"', $graph_data) ?>" >

我认为正在发生的事情是 value= 的引号 (") 以“Driving”的引号结尾。

于 2015-10-09T23:37:12.363 回答
0

我猜那graph_data是一个字符串。

尝试:var graph_data = JSON.parse($('#graph_data').val());

于 2015-10-09T22:59:29.027 回答