javascript - 如何将数组从 PHP/MySQL 转换为 Javascript

标签 javascript php arrays

我很难让这段代码的 JavaScript 部分按照我想要的方式工作。

我已成功从 MySQL 表中提取数组并使用 JSON 进行转换。

但是,当我尝试将数据放入 HTML 表中时,我在每个单元格中得到单独的字符。

例如,我的数据库有一个带有关键字标签的表。里面有 4 种颜色:蓝色、绿色、棕色、淡褐色,与我在这里输入的完全一样。

当我通过 JavaScript 输出时,我在每个单元格中得到一个字符,而不是 4 个单元格。

我“几乎”独自一人:

<?php
include 'conn.php';
$sql = "SELECT * FROM variables WHERE id= '1' ";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $labels = $row["labels"];
    }
    foreach (explode(',', $labels) as $newLabel) {
        echo "{$newLabel} ";
    }
} 
?>
<script>

<?php $newLabel = $labels ?>
var n = <?php print (json_encode($newLabel)); ?>;
var index;
var myTable= "<table class='hover'>";


myTable+= "<tr><td class='smalltd'style='width: 20px; font-weight:bold;'></td>";
for (index = 0; index < newLabel.length; index++) {
    myTable+= "<td class='no' style='width: 100px; font-weight:bold;'>" 
           + newLabel[index] + "</td>";
}

myTable+="</table>";

document.write(myTable);
</script>

我怀疑罪魁祸首在于 newLabel.length 但我不确定

最佳答案

首先,您需要将标签收集到数组中,而不是字符串中:

$labels[] = $row["labels"];

其次,您从未定义过 newLabel javascript 变量。 改变

for (index = 0; index < newLabel.length; index++) {

for (index = 0; index < n.length; index++) {

并使用n或将n重命名为newLabel

关于javascript - 如何将数组从 PHP/MySQL 转换为 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488614/

相关文章:

javascript - 防止悬停在事件状态

arrays - 如何在 Bash 中将字符串拆分为数组?

javascript - 在 Iframe 中编辑博客数据

javascript - 验证多个提示是否都有值

JavaScript 打印整个数组而不是单个元素

php - 超链接 SQL 查询的第一个结果

php - 如何在 Laravel 5 中返回自定义查询结果

MySQL 的 PHP 搜索引擎

php - SPL objectstorage vs SPL 数组 vs 普通数组

java - 如何打印第一个数组中的第一个、第二个数组中的第二个和第三个数组中的第三个单词的组合?