Диаграмма холста JS не отображается при извлечении из MySQL - PullRequest
0 голосов
/ 18 февраля 2020

Может кто-нибудь увидеть причину, по которой ниже не будет отображать кольцевую диаграмму, как следует? В зависимости от того, где я закрываю время, он будет отображать диаграмму, но только с последней записью из базы данных, пока он печатает две другие записи, которые должны быть вытянуты в тексте как { label: "Ireland", y: 2 }. Я думаю, что если закрыть сейчас в нужном месте, но ничего не отображается. (я знаю, что должен использовать подготовленные заявления - извинения за неопытность)

 <%

                            Statement stat = null;
                            ResultSet res = null;
                            stat = conn.createStatement();
                            String data = "SELECT COUNT(user_id) AS count_user, user_country FROM user GROUP BY user_country;";

                            res = stat.executeQuery(data);

                            while(res.next()){
                        %>


                        <tr>
                            <td><%= res.getInt("count_user")%></td>
                            <td><%= res.getString("user_country")%></td>
                           </tr>
                        <%
                            }
                         %>
                    </tbody>
                </table>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script type="text/javascript">

window.onload = function () {
    var chart = new CanvasJS.Chart("chartContainer", {
        title:{
            text: "Alumni by country"              
                        },

        data: 
                      [

                        {
                            // Change type to "doughnut", "line", "splineArea", etc.
                                type: "doughnut",

                                dataPoints:             

                                <%  res = stat.executeQuery(data);

                                 while(res.next()){
                                %> 

                                [  

                { label: "<%= res.getString("user_country")%>",  y: <%= res.getString("count_user")%> }

                                ]

                                                <%}%>
                        }
        ]
    });
    chart.render();
};
}
</script>
<body>
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
</body>

1 Ответ

0 голосов
/ 18 февраля 2020

Кажется, что пропущена запятая после каждого блока {label ...} (кроме последнего, конечно)

...