2017-08-16 118 views
-1

我試圖從數據庫獲取數據,並把它變成JS for循環使用JavaScript的for循環

這裏是PHP的一部分:

$result = mysql_query("SELECT * FROM db"); 
$row = mysql_fetch_array($result); 
$array[] = $row['value']; 

這裏是JS部分

var days=<?php echo json_encode($row['value']);?>; 
    for(var i=0;i<days.length;i++){ 
    document.write("Number"+ days[i] +"<br>"); 
    } 

當我嘗試echo的值時,我可以在echo這個php部分的數組中沒有問題,但是在js部分沒有錯誤,只是一個空白頁面

查看頁面源時

確定整個場景發生了變化

現在我的代碼是:

rows = array(); 
     $result = mysql_query("SELECT * FROM db"); 
     $i=1; 
     while($row = mysql_fetch_array($result)) { 
     $array[] = $row['value']; 

     $i++; 
     } 


var days=<?php echo json_encode($array);?>; 
      for(var i=0;i<days.length;i++){ 
      document.write("Number"+ days[i] +"<br>"); 

,當我看到頁面的源代碼,我可以看到的值

var days=["8","11","18"]; 

下一步是將其實現爲js圖形代碼

如果我嘗試一個單獨的頁面單獨它的工作原理上的js代碼

var days=<?php echo json_encode($array);?>; 
      for(var i=0;i<days.length;i++){ 
      document.write("Number"+ days[i] +"<br>"); 

,但是當我把代碼中的數據點

dataPoints: [ 

      {y: var days=<?php echo json_encode($array);?>; 
      for(var i=0;i<days.length;i++){ 
      document.write(days[i] +"<br>"); 
      };, label: "test"}, 


     ] 

我獲得空白頁,沒有錯誤。並且當我查看頁面源時仍然可以看到這些值。 var days=["8","11","18"];

+0

你可以分享生成的HTML,在頁面中說'view source'並檢查它 –

+0

很難說沒有看輸出或知道數據結構,但它看起來像你的意思是json_encode()$數組,而不是$ row [「value」] – ishegg

回答

-1

你的頁面是空白的,因爲PHP的回報不串JSON

你可以試試:

var days= JSON.parse("<?php echo json_encode($row);?>"); 
    for(var i=0;i<days.length;i++){ 
    document.write("Number"+ days[i] +"<br>"); 
    } 

或者: php文件:

$result = mysql_query("SELECT * FROM db"); 
$row = mysql_fetch_array($result); 
return json_encode($row); 

js文件:

$.get("phpfile.php",function(rs){ 
    var days = JSON.parse(rs); 
    for(var i=0;i<days.length;i++){ 
     document.write("Number"+ days[i] +"<br>"); 
    } 
}); 
+1

'JSON.parse(「<?php echo json_encode($ row);?>」);'沒有意義。如果您將json編碼的數據回顯爲javascript代碼,那麼這些數據已經被解釋爲JavaScript對象。你的代碼會導致類似'JSON.parse([「8」,「11」,「18」])''。在這種情況下'JSON.parse'不是必需的,並且會導致錯誤,因爲它需要一個字符串。 –

+1

如果服務器端的JSON響應設置正確,則不需要'JSON.parse(rs)'。如果jQuery不會自動解析JSON數據,那麼如果使用'JSON.parse(rs)',那麼響應類型應該被修復而不是服務器端。即使響應類型不能被固定在服務器端,也不應該使用'JSON.parse(rs)',而不是你應該給ajax請求信息來解釋它爲json。 –

+0

hi @ t.niese, JSON.parse('<?php echo json_encode($ row);?>'); =>代碼返回類似於: JSON。解析( '{ 「名稱」: 「AAA」, 「值」: 「BBB」}') –