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