Пожалуйста, обратите внимание на следующий код:Как передать результаты запроса в Amchart?
После тега внутри заголовка моего файла
<script>
var chart;
var chartData = [{
ConnectionType: "First",
NumberPercentage: 1194,
{
ConnectionType: "Second",
NumberPercentage: 1882},
{
ConnectionType: "Third",
NumberPercentage: 1809},
{
ConnectionType: "Fourth",
NumberPercentage: 1322},
{
ConnectionType: "Fifth",
NumberPercentage: 1122},
{
ConnectionType: "Sixth",
NumberPercentage: 1114},
{
ConnectionType: "Seventh",
NumberPercentage: 984}
];
AmCharts.ready(function() {
// PIE CHART
chart = new AmCharts.AmPieChart();
// title of the chart
chart.addTitle("3D Donut Charts", 16);
chart.dataProvider = chartData;
chart.titleField = "ConnectionType";
chart.valueField = "NumberPercentage";
chart.sequencedAnimation = true;
chart.startEffect = "elastic";
chart.innerRadius = "30%";
chart.startDuration = 2;
chart.labelRadius = 15;
// the following two lines makes the chart 3D
chart.depth3D = 10;
chart.angle = 15;
// WRITE
chart.write("chartdiv");
});
</script>
После тега внутри тела тега моего профиля:
<div id="chartdiv" style="width: 100%; height: 362px;"></div>
Я хочу, чтобы вернуть данные из следующего cfquery
в моем файле ColdFusion. Для простоты я упомянул только cfquery
для первого подключения. Остальные cfqueries до седьмого одинаковы, кроме имен.
<cfquery datasource = "XX.XX.X.XX" name="qCFCHART">
SELECT
Count(*) AS TOTAL_CONNECTION
, Sum(CASE WHEN 'FIRST' = EVENTS THEN 100 END)/Count(*) AS FIRST
, Sum(CASE WHEN 'SECOND' = EVENTS THEN 100 END)/Count(*) AS SECOND
, Sum(CASE WHEN 'THIRD' = EVENTS THEN 100 END)/Count(*) AS THIRD
, Sum(CASE WHEN 'FOURTH' = EVENTS THEN 100 END)/Count(*) AS FOURTH
, Sum(CASE WHEN 'FIFTH' = EVENTS THEN 100 END)/Count(*) AS FIFTH
, Sum(CASE WHEN 'SIXTH' = EVENTS THEN 100 END)/Count(*) AS SIXTH
, Sum(CASE WHEN 'SEVENTH' = EVENTS THEN 100 END)/Count(*) AS SEVENTH
FROM MyDatabase;
</cfquery>
Учитывая код из вышеприведенного сценария:
ConnectionType: "First",
NumberPercentage: 1194,
Я хочу, чтобы отобразить результат, возвращаемый «FIRST» из приведенного выше запроса в моей круговой диаграммы и писать cfdump
или что-нибудь ColdFusion, связанной не работать там.
Например:
ConnectionType: "First",
NumberPercentage: <cfdump var="#qCFCHART.FIRST#>",
выше выдает ошибку, и я вижу очевидную причину, потому что я внутри тега скрипта, и я задаюсь вопросом, как поступить? Какие-либо предложения?
Вот моя попытка после того, как после некоторых комментариев:
<cfoutput query="qCFCHART">
#currentrow#)
<cfloop index="col" list="#columnlist#">
#col#=#qCFCHART[col][currentRow]#
</cfloop>
<p/>
</cfoutput>
<cfset cols = getMetadata(qCFCHART)>
<cfdump var="#cols#">
Вы упомянули в своем комментарии, что мне нужно сначала запрограммировать запрос, а затем использовать serializeJSON (данные).Однако, если я впервые использую serializeJSON (данные), я могу видеть отформатированные результаты JSON в моем браузере, но все же интересно узнать, как извлечь определенные значения из этого формата. Пожалуйста, дайте мне знать, если я направляюсь в правильном направлении? P.S: У меня нет опыта работы с jQuery, если это необходимо. – Tan
Итак, вы охотно не следовали моему предложению и спрашиваете меня, почему это не сработало? Вы не можете просто выполнить serializeJSON() в своем запросе (что, кажется, вы говорите), и ожидать, что он будет в том же формате, который ожидает ваш график. Вам не нужно использовать jQuery, если вы будете следовать тому, что я сделал, вы можете просто установить значение serializeJSON (data) в переменную JavaScript ' ' –
Я не делал ничего охотно, и мое единственное намерение состояло в том, чтобы прояснить мой вопрос. Я обновил код в своем исходном сообщении, и я вижу массив структур в качестве результата после выполнения ' code. Пожалуйста, дайте мне знать, если я направляюсь в правильном направлении? 2) Если я использую serializeJSON (cols) здесь, тогда он просто отображает массивы структур в формате JSON. Дайте мне знать, если что-то не так, как я делаю. Спасибо –
Tan