Моя строка dataPoints сохранена в базе данных.
Я передаю это в скрытой переменной в php.
И используя .val () я получаю в jquery.
Теперь я должен передать это в dataPoints canvas 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
это строка
Пытаться: 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 разобрались. Из вашего оригинального поста выглядело, как будто у вас тоже были проблемы с ним. Но одна проблема за раз.