Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数组从php传递到javascript会停止我的程序_Javascript_Php_Mysql_Arrays - Fatal编程技术网

将数组从php传递到javascript会停止我的程序

将数组从php传递到javascript会停止我的程序,javascript,php,mysql,arrays,Javascript,Php,Mysql,Arrays,我是一个绝对的初学者,时间快到截止日期了:如果这是一个简单的问题,请原谅,但我已经花了六个小时寻找解决方案,但没有成功: 我的PHP代码从MYSQL导入2603个值(文本和整数),并将它们放入数组中。然后我将数组内爆。最后,我尝试将其导入javascript。此时,我的代码停止运行 相关PHP代码(成功连接数据库后: $previousdecisions=array(); $carryover=array(); $countera=1; $query="SELECT * FROM

我是一个绝对的初学者,时间快到截止日期了:如果这是一个简单的问题,请原谅,但我已经花了六个小时寻找解决方案,但没有成功:

我的PHP代码从MYSQL导入2603个值(文本和整数),并将它们放入数组中。然后我将数组内爆。最后,我尝试将其导入javascript。此时,我的代码停止运行

相关PHP代码(成功连接数据库后:

$previousdecisions=array();
$carryover=array();
$countera=1;        
$query="SELECT * FROM strategicdecisions".$teamname;
$result=mysql_query($query);
while($row = mysql_fetch_array($result)){
    $carryover[] = $countera;
    $carryover[]=$row['decisionname'];
    $carryover[]=$row['round1'];
    $carryover[]=$row['round2'];
    $carryover[]=$row['round3'];
    $carryover[]=$row['round4'];
    $carryover[]=$row['round5'];
    $carryover[]=$row['round6'];
    $carryover[]=$row['round7'];
    $carryover[]=$row['round8'];
    $carryover[]=$row['round9'];
    $carryover[]=$row['round10'];
    $countera++;        
}
“decisionname”值是文本,所有其他值都是整数

如果我然后打印(数组值($carryover)),它是一个完全符合我要求的数组(有2603个值)。然后我将数组内爆:

 $carryover = implode(",", $carryover);
在javascript中,我尝试按如下方式导入数组:

var previousdecisions = "<?php echo $carryover; ?>".split(","); 
for(a=0; a < previousdecisions.length; a++) {
    document.write("<li>"+previousdecisions[a]+"</li>");
}
var-previousdecisions=“”.split(“,”);
对于(a=0;a”+以前的决定[a]+“”);
}
这将“停止”我的程序(即,我没有收到错误消息,但不再执行以下代码)

我用json_encode做了同样的尝试(我更愿意避免),同样的事情也发生了

我将非常感谢您的帮助。

在php中,请执行以下操作:

$json = json_encode($carryover);
HTML中的选项执行以下操作:

<script>
var previousdecisions = JSON.pasrse("<?php echo $json; ?>"); 
</script>

var-previousdecisions=JSON.pasrse(“”);

使用JSON容易得多,这不是一个明显的错误,因此很难得到错误

我会尝试几种方法:

  • 不要在数组上写字符串。如果程序变得越来越大,如果从数组开始,而在底部它是字符串,这将非常混乱。请使用不同的名称
  • 可能变量没有全局声明。所以请尝试

    var previousdecisions = "<?php var_dump($carryover); echo $carryover; ?>";
    

如果这些都不适合您,请评论您的新探索,我将编辑我的帖子。

您应该规范您的数据库;“round1-round10”应该在单独的表中。尝试通过JSON传递值吗?JavaScript控制台上是否有任何错误?
console.log(previousdecisions);