如何使用php用数据库数据填充JavaScript数组

时间:2017-09-26 01:52:10

标签: javascript php arrays database mysqli

这是连接数据库的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>

4 个答案:

答案 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>