0

我目前正在尝试使用 google chart api 和 jquery。到目前为止,我对 google chart api 没有任何问题,但是我无法让 jquery 工作。我想要做的是我想循环我得到的 json 对象,并根据我从 json 中得到的内容添加复选框。

<html>
<head>
<title>Test</title>
<!-- Load jQuery -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<!-- Load Google JSAPI -->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", { packages: ["corechart"] });
google.setOnLoadCallback(drawChart);
addSensorCheckboxes();

        function drawChart() {
            var jsonData = $.ajax({
                dataType: "json",
                url: "getValues.php",
                data: window.location.href.slice(window.location.href.indexOf('?') + 1),
                async: false
            }).responseText;

            var obj = jQuery.parseJSON(jsonData);
            var data = google.visualization.arrayToDataTable(obj);

            var options = {
                title: ''
            };

            var chart = new google.visualization.LineChart(
                                    document.getElementById('chart_div'));
            chart.draw(data, options);
        }

        function addSensorCheckboxes() {
            var jsonData = $.ajax({
                dataType: "json",
                url: "getSensors.php",
                async: false
            }).responseText;

            var obj = jQuery.parseJSON(jsonData);

            for (i in obj)
            {
                var checkbox = '<input type="checkbox" name="sensors[]" value="'+obj[i][0]+'" />'+obj[i][1];
                //alert(checkbox);
                $("#test").append(checkbox);
            }

        }

</script>
</head>
<body>
<form id="theForm" name="theForm" action="index.php" method="get">
    <span id="test"></span>
    <input id="submit" type="submit" value="Submit" /><br>
</form>
<div id="chart_div" style="width: 100%; height: 100%;">
</div>
</body>
</html>

我犯了什么具体错误?

在此先感谢,最好的问候

发芽者

4

2 回答 2

0

很多可能性。确保正在调用 addSensorCheckboxes() 并且填充了 obj。console.log() 是找出应用程序失败的最简单方法。

修复你的for-in循环......for (var i in obj)否则'i'将是全局的。

确保 var 复选框是 DOM 元素、HTML 字符串或 jQuery 对象(根据 jquery 文档)

于 2013-06-05T07:55:33.637 回答
0

尝试

            var checkbox = $('<input type="checkbox" name="sensors[]" 
                                       value="'+obj[i][0]+'" />'+obj[i][1]);
于 2013-06-05T07:51:31.413 回答