将PHP数组传递到Javascript数组中

5

关于标题的问题。我有一个数组,其代码如下:

$query = "SELECT * FROM server";
$result = mysql_query($query);
$dServer = array();

while($row = mysql_fetch_assoc($result)) {
    $dServer[] = $row['model'];
}    

现在,我该如何将$dServer数组传递到JavaScript数组中呢?
例如,这个数组:
var a = new Array();

将 $dServer 中的所有数组传递到 a 中。 - Hafiz Abdullah
3
请使用搜索功能。在“相关问题”边栏中约有四分之一的问题可以回答你的问题。 - jprofitt
1
@zerkms 如果他们使用引号,那么a将成为一个字符串,而不是由JSON定义的变量。 - jprofitt
@jprofitt:糟糕,我错了,它不是一个ajax响应,而是内联JS。 - zerkms
4个回答

15
$query = "SELECT * FROM server";
$result = mysql_query($query);
$dServer = array();

while($row = mysql_fetch_assoc($result)){
    $dServer[] = $row['model'];
}    

?>
<script type="text/javascript">
    var a = <?php echo json_encode($dServer); ?>;
</script>

3
将其编码为json对象。
<?
    $arr = array('entry' => 'content');
?>

<script>
var data = <?=json_encode($arr);?>;
alert(data['entry']);
</script>

1

尝试利用 AJAX 请求和 json_encode

第二种变体

<?php
$query = "SELECT * FROM server";
$result = mysql_query($query);
$dServer = array();

     while($row = mysql_fetch_assoc($result))
      {
              $dServer[] = $row['model'];
      }    
?>
var a = <?php echo json_encode($dServer);?>;

1

除了提到的ajax / json方法外,您还可以直接打印出值:

<?php
  $query = "SELECT * FROM server";
  $result = mysql_query($query);
?>

<script type="text/javascript">
  var a = new Array();

<?php
  while($row = mysql_fetch_assoc($result)){
    echo "a['model'] = " . $row['model'] . ";"; 
    echo "a['nextField'] = " . $row['nextField'] . ";"; 
  }
?>
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接