2014-09-30 39 views
-1

我是一个绝对的初学者与时钟实现的最后期限滴答:请原谅,如果这是一个简单的问题,但我花了6小时失败寻找一个解决方案:传球达阵从PHP的JavaScript停止我的程序

我的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” 值的文本,所有其他值均为整数

如果我当时的print_r(array_values($结转));它是在正是我想要(具有2603倍的值)的方式的阵列然后我破灭阵列:

$carryover = implode(",", $carryover); 

在JavaScript中,我试图导入阵列如下:

var previousdecisions = "<?php echo $carryover; ?>".split(","); 
for(a=0; a < previousdecisions.length; a++) { 
    document.write("<li>"+previousdecisions[a]+"</li>"); 
} 

这'停止'我的程序(即,我没有收到错误消息,但以下代码不再执行。

我试过同样的事情与json_encode(我宁愿避免)和完全相同的事情发生。

我会非常感谢任何帮助。

+0

你应该规范你的数据库; “round1 - round10”应该放在单独的表格中。 – 2014-09-30 08:55:22

+0

试过通过JSON传递值? – andyroo 2014-09-30 08:57:12

+2

您的JavaScript控制台是否存在任何错误? – Rossco 2014-09-30 09:02:52

回答

0

这不是一个obviouse的错误,因此很难得到错误。

我会尝试几件事情:

  • 不要写一个数组的字符串。如果程序变得越来越大,如果你从一个数组开始,而且它的底部是一个字符串,那么这是非常令人困惑的。使用不同的名字!
  • 也许该变量未被全局声明。所以试试

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

    之前你回声。你会通过var_dump()看到变量是否被声明并写入了什么。

  • 如果您看到声明了该变量,则在不知道它是否为字符串之前不应该进行拆分。所以要尽量离开了拆分,并通过

    console.log(previousdecisions); 
    

考虑的变量。如果这些工作都为你再开始您新的探索,我会编辑自己的帖子。

0

在PHP做:

$json = json_encode($carryover); 

中HTML做:

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

这是很容易使用JSON