我在通过json_encode函数将2维PHP数组解析为Javascript时遇到问题。 这就是我填充PHP数组的方式:
if( $result->num_rows > 0 ) {
$i = 0;
while( $row = $result->fetch_assoc() ) {
$idkaart[$i] = array($row["klant_id"],$row["plaats"],$row["land"],$row["mailing"],$row["korting"],$row["tegoed"],$row["status"],
$row["startdatum"],$row["laatstonline"],$row["kolom"],$row["rij"],$row["fontsize"],$row["overbodenmail"]);
//echo $idkaart[$i];
$i += 1;
}
}
之后我使用一个简单的双循环来在我的屏幕上显示数组,看它是否正确填充
奇怪的是,当我尝试通过json_encode将其加载到Javascript变量时:var temp = <?php echo json_encode($idkaart[0]); ?>; alert( temp );
它给了我回复&#39; null&#39;
当我在代码的PHP部分中执行echo json_encode时,它给出了有效的响应。
我已经检查了字符编码等。
我确实编了好几个小时,所以我可能会在这里犯一个菜鸟错误
答案 0 :(得分:1)
我得到了它,因为我有一个愚蠢的脑屁。
显然Javascript无法正常工作,因为它高于生成数组的PHP代码。我已经修改了Javascript,现在它没有麻烦。
感谢大家为这个愚蠢的错误想出解决方案!
答案 1 :(得分:0)
二维数组适用于PHP。你应该澄清你的问题是什么。是关于来自MySQL的PHP数据还是来自HTML的JS。
查看您的html资源以检查数据是否在那里。
<?php
error_reporting(E_ALL);
$a = array(
array(1,2,3),
array(1,2,4)
);
echo "<script>var a=";
echo json_encode($a[0]);
echo ";alert(a);</script>";