2017-08-16 82 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”}') –