这是连接数据库的PHP代码
<?php
$host = "localhost";
$user = "admin";
$password = "";
$dbname = "test";
$con = new mysqli($host, $user, $password, $dbname) or die ('Could not connect to the database server' . mysqli_connect_error());
?>
这里是我想将数据库数据插入JavaScript数组
的地方<script type="text/javascript">
var array = [<?php
$sql = mysqli_query($conn, "SELECT name FROM users");
while ($row = $sql->fetch_assoc()) {
unset($name);
$name = $row['name'];
echo '<p>'.$name.'</p>';
}
?>];
document.write(array);
</script>
答案 0 :(得分:0)
JS代码中的array
正在显示[0] => '<p>name</p>'
。您没有正确构建数组,因此需要删除p
元素,并将其空格分隔。
根据建议,[json_encode][1]
将是一个更好的解决方案,请看这个例子:
<?php
// get results from db
$name = $row['name'];
$age = $row['age'];
$phone = $row['phone'];
// create array
$array = array($name, $age, $phone);
// encode array
$json = json_encode($array);
?>
<script>
var array = <?php echo $json; ?>;
document.write(array);
</script>
这将输出:
name,age,phone
答案 1 :(得分:0)
通常使用Ajax和JSON响应来使用DB数据填充javascript变量。 但请尝试以下
<script type="text/javascript">
var array = [
<?php
$result = array();
$sql = mysqli_query($conn, "SELECT name FROM users");
while ($row = $sql->fetch_assoc()) {
unset($name);
$name = $row['name'];
$result[] = "'$name'";
}
echo impode(",", $result);
?>
];
for(var i =0; i < array.length; i++)
{
document.write("<p>" + array[i] + "</p>");
}
</script>
答案 2 :(得分:0)
首先将数据保存到另一个数组并使用JSON类型将其传递给JS
试试这段代码,
<?php
while ($row = $sql->fetch_assoc()) {
$array2js[] = $row['name'];
}
?>
<script type="text/javascript">
var array = JSON.parse("<?=json_encode($array2js)?>");
console.log(array);
</script>
好日子〜
答案 3 :(得分:0)
您应该使用json_encode():
json_encode - 返回值
的JSON表示
<?php
$sql = mysqli_query($conn, "SELECT name FROM users");
$json = array();
while ($row = $sql->fetch_assoc()) {
$json[] = $row['name'];
}
?>
然后在你的javascript中
<script type="text/javascript">
var array = <?= json_encode($json) ?>;
</script>