JavaScript 数组和 MySQL

JavaScript Arrays and MySQL

我正在尝试使用 PHP 连接到数据库,然后将 MySQL 查询返回的所有值放入 JavaScript 字符串数组。

这是我目前的代码。

JavaScript代码:

var noDressing = document.getElementById("temp1").innerHTML;
var noDressingNew = noDressing.split(',');
alert(NoDressingNew);

出于调试目的,我正在提醒列表。

这是PHP代码(我知道它连接到数据库成功):

<div id="temp1" style="display: none;">
    <?php
        include "/home/pi/config.php";
        $toPrint = "";
        $connect = mysqli_connect("localhost", $name, $pass, "items");
        if(mysqli_connect_errno()){
            echo "<p>Failed to connect to products database!</p>";
        }
        $result = mysqli_query($connect, "SELECT * FROM products WHERE options=''");
        while($row = mysqli_fetch_array($result)){
            $id = $row['id'];
            $toPrint .= $id . ",";
        }
        echo rtrim($toPrint, ",");
    ?>
</div>

这是我的 table 在数据库中的样子:

ID | NAME | DESCRIPTION | PRICE | TYPE | OPTIONS

我想获取所有 OPTIONS 值为“”(空字符串)的记录,然后将它们的 ID 放入列表中。

但是,当我运行这段代码时,根本没有显示警告框。

谢谢,

将这些添加到数组中,然后在数组上调用 implode() 会更有意义;

$toPrint = array();
while($row = mysqli_fetch_array($result)){
    $toPrint[] = $row['id'];
}
$toPrint = implode(',', $toPrint);

如果没有警告框,则 Javascript 错误很可能是导致该特定问题的原因,尽管这可能意味着您在链的更上层有问题。首先按 F12 打开浏览器的开发人员工具,然后转到控制台并刷新页面。检查控制台是否出现任何错误,并尝试更正这些错误。

在使用 PHP 之前直接在数据库上尝试 运行 您的 SQL 以确保您的 SQL 正在按预期工作。您可以为此使用任意数量的工具。为此,我想到了 PHPMyAdmin、HeidiSQL 或 SQLYog。检查那里是否存在任何错误。

如果 none 与您的 SQL 一起存在,请使用 var_dump 将您的查询结果显示到网页(执行此操作时删除 "display: none;")。确保您从 SQL 获得结果。在你的循环中尝试 var_dump 以检查你在循环本身中获得了正确的值。

最后,您需要确保直接在表单上显示的任何内容都正确 HTML 转义以避免 Cross-site scripting attacks. You can use htmlspecialchars 出现这种情况。像这样回显你的字符串:

echo htmlspecialchars($toPrint);

下面是如何使用开源项目http://www.jinqJs.com

var result = jinqJs().from($result).where('OPTIONS == ""').select('ID');