将多维数组从php作为数组而不是对象传递给js

24 浏览
0 Comments

将多维数组从php作为数组而不是对象传递给js

我正在建立一个存储问题结果的教育网站,非常感谢任何帮助。我在这个网站上进行了很多搜索,但没有找到这个具体问题。

我正在努力使用PHP将SQL数据传递给Javascript,以使其成为一个多维数组(没有键),而不是一个对象。

目前,我在JS中得到了这样一个对象

{"0":["y3","y2","y1","n5","y4","y6"],"1":["n5","n4","n3","y","n","y"], ...}

我真正需要的是一个数组

[["y3","y2","y1","n5","y4","y6"],["n5","n4","n3","y","n","y"]...] 

这样我就可以在JS中执行其他功能(例如长度、查找索引号等)。

以下是我的PHP和JS的一部分。我使用了echo json_encode,并尝试了许多不同的mysqli_fetch变体,但无法解决。奇怪的是,对不同的SQL表进行类似的查询时,它可以按照我希望的方式工作(唯一的区别是它返回的是整数列表而不是字符串)。

// ...
    // 尝试执行预处理语句
    if(mysqli_stmt_execute($stmt)) {
        $result = mysqli_stmt_get_result($stmt);
        if(mysqli_num_rows($result) > 0) {
            //获取结果行          
            while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
                array_push($thisFact, $row["mark"]); //"mark"是表中的列名
            }
            $progress[$x] = $thisFact; // 设置这个Fact的进度(一个最多有6个项的数组)
        } // 结束 if result > 0      
    }
    else {  
            echo "Oops! 无法执行。" ;
    }
} //结束循环   
?>  
var FactProgress = ;
alert(FactProgress.length);
for (var i = 0; i < FactProgress.length; i++) {

FactProgress.length显示为未定义。然后,在我尝试使用长度时,它会出错。

非常感谢。

0