我很难让这段代码的 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/