我的数据点字符串保存在数据库中。我把它传递给php的隐藏变量。在jquery中使用。val()。现在我必须在帆布js的数据点中传递它。
请看下面的php代码
<input type="hidden" id="graph_data" name="graph_data" value="<?php echo $graph_data ?>" >
$graph_data包含以下字符串
{x: 30, y:[.]00, 3.20),标签:"驾驶"},{x: 10, y:[3.20, 5.17],标签:"下班"}
请参阅我的jquery代码。
var graph_data = $('#graph_data').val();
data: [
{
type: "rangeBar",
dataPoints: [graph_data]
}]
我猜graph_data
是一个字符串。
Try: var graph_data = JSON.parse($('#graph_data').val());
我想知道问题是否实际上不是在data
,因为它没有封装在对象中。
var data = [
{
type: "rangeBar",
dataPoints: [graph_data]
}];
这是你的错误吗?
啊!试试这个:<input type="hidden" id="graph_data" name="graph_data" value="<?php echo str_replace('"', '''"', $graph_data) ?>" >
我认为问题是value=的引号(")被"Driving"的引号结束了
你肯定是在艰难地移动数据。
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的使用进行了分类。从你最初的帖子来看,你似乎也遇到了麻烦。但是,一次解决一个问题。