我正试图用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>
这就是我的表在数据库中的样子:
ID | NAME | DESCRIPTION | PRICE | TYPE | OPTIONS
我想获取OPTIONS值为"(空字符串)的所有记录,然后将它们的ID放入列表中。
但是,当我运行此代码时,根本不会显示报警框
谢谢,
将这些添加到数组中,然后在数组上调用内爆()会更有意义;
$toPrint = array();
while($row = mysqli_fetch_array($result)){
$toPrint[] = $row['id'];
}
$toPrint = implode(',', $toPrint);
如果没有警报框,则很可能是Javascript错误导致了该特定问题,尽管这可能意味着您在更高的级别上遇到了问题。首先按F12打开浏览器的开发工具,然后转到控制台并刷新页面。检查控制台中是否出现任何错误,并尝试更正这些错误。
在使用PHP之前,请尝试直接在数据库上运行SQL,以确保SQL按预期工作。为此,您可以使用任意数量的工具。PHPMyAdmin、HeidiSQL或SQLYog就是为了这个目的而出现的。检查那里是否存在任何错误。
如果SQL中不存在查询结果,请使用var_dump在网页上显示查询结果(执行此操作时删除"display:none;")。请确保您从SQL中获得结果。在循环中尝试var_dump,以检查在循环本身中是否获得了正确的值。
最后,您需要确保直接在表单上显示的任何内容都是正确的HTML转义,以避免跨站点脚本攻击。您可以为此使用htmlspecialchars。像这样回显你的字符串:
echo htmlspecialchars($toPrint);
以下是如何使用开源项目http://www.jinqJs.com
var result = jinqJs().from($result).where('OPTIONS == ""').select('ID');