2013-06-05 76 views
0

我目前正在試驗谷歌圖表API和jQuery。到目前爲止,我沒有任何問題與谷歌圖表API,但我一直無法讓jQuery工作。我想要做的是我想循環我得到的JSON對象,並根據我從JSON中獲得的內容添加複選框。JQuery添加複選框不工作

<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> 

我犯的任何特定錯誤?

由於提前, 最好的問候

種子發芽

+0

控制檯上的錯誤是什麼? –

+0

obj [i] [0]的價值是什麼? –

+0

使用$(document).ready(addSensorCheckboxes)解決了它;在我第一次想要調用函數 – brancz

回答

0

嘗試

  var checkbox = $('<input type="checkbox" name="sensors[]" 
             value="'+obj[i][0]+'" />'+obj[i][1]); 
0

很多的可能性。確保addSensorCheckboxes()被調用,並且obj被填充。 console.log()是找出應用程序失敗的最簡單方法。

修復您的for-in循環以及... for (var i in obj)否則'我'將是全球性的。

確保var複選框是DOM元素,HTML字符串或jQuery對象(根據jquery文檔)

+0

的行上仍然不起作用。對象正在填充正確,我通過提醒字符串創建它說''輸入類型=「複選框」名稱=「sensors []」值=「1」/>測試'應該工作..應該不是它?然後,準備好了( – brancz

+0

.ready())。好:) – Xerri