Итак, вот головоломка. У меня есть форма Gravity (с использованием AJAX), в которой есть несколько переключателей с разными значениями, назначенными им. Когда пользователь выбирает один из 5 вариантов кнопки для вопроса, этому ответу присваивается значение от 2 до 5.
Я хочу передать эти данные в круговую диаграмму Google, и у меня есть несколько ответов, заполняющих эту диаграмму. У меня есть две части головоломки, все, что мне нужно сделать, это получить эту информацию из формы в мой файл JS в качестве переменной.
Прежде чем вы сможете сказать «репост», позвольте мне объяснить мой метод: я уже просмотрел множество сообщений здесь о передаче переменных PHP в JS. Вот моя установка:
В моем файле functions.php я объявляю набор из 7 переменных, которые соответствуют моим 7 вопросам. Давайте упростим это и используем только один для примера:
$scoreOne;
Затем ниже (в функции) я вызываю эту переменную глобально и присваиваю ей значение ввода формы.
$GLOBALS['scoreOne'] = rgpost('input_18');
Ниже (и вне предыдущей функции) я закрываю свои php-теги и кодирую переменную в JSON следующим образом:
<script>
var scoreOneJson = <?php echo json_encode("$scoreOne", JSON_HEX_TAG); ?>;
</script>
Перейдем к моему файлу .js: я использую визуализацию круговой диаграммы Google (https://developers.google.com/chart/interactive/docs/gallery/piechart)
Сама диаграмма работает нормально, если я использую прямые числа в качестве переменных. Однако мы хотим вызвать эту переменную, которую мы только что закодировали:
var data = google.visualization.arrayToDataTable([
['Category', 'Score'],
['Score One', scoreOneJson],
['Score Two', 2],
['Score Three', 3],
]);
Но это, кажется, не работает. Что мне не хватает?